diff --git a/apps/fullstack/components/editor/context.tsx b/apps/fullstack/components/editor/context.tsx
index a6e601dd9d8de5c56331a8449172cdbc94db6e23..9e8594c4e6aad2ecf83af1bd8aaec315e5fe1c5c 100644
--- a/apps/fullstack/components/editor/context.tsx
+++ b/apps/fullstack/components/editor/context.tsx
@@ -1,4 +1,5 @@
 "use client";
+import useUser from "lib/hooks/useUser";
 import {
     createContext,
     Dispatch,
@@ -11,7 +12,7 @@ import {
     useState,
 } from "react";
 
-import { ID, PageData } from "@snip/database/types";
+import { ID, PageData, UserConfigDataRet } from "@snip/database/types";
 import { ViewPort } from "@snip/render/viewport";
 import { BaseData, BaseView, SnipData } from "@snip/snips/general/base";
 
@@ -60,6 +61,9 @@ interface EditorContextI {
     scale: Map<PageIdx, number>;
     zoom: Map<PageIdx, number>;
     triggerScaleZoomUpdate: (page_idx: PageIdx, viewport?: ViewPort) => void;
+
+    // User config
+    userConfig: UserConfigDataRet;
 }
 
 const EditorContext = createContext<EditorContextI | null>(null);
@@ -95,6 +99,9 @@ function _EditorContextProvider({ children }: { children: React.ReactNode }) {
     const [overlayOnPageIdx, setOverlayOnPageIdx] = useState<number>(0);
     const [overlayContainer, setOverlayContainer] = useState<HTMLDivElement>();
 
+    /** User config */
+    const { config: userConfig } = useUser(true);
+
     // Position relative to the page i.e. top left corner is
     // at the top left corner of the page (not the wrapper)
     // This normally mirrors the active snip position
@@ -169,6 +176,7 @@ function _EditorContextProvider({ children }: { children: React.ReactNode }) {
                 zoom,
                 scale,
                 triggerScaleZoomUpdate,
+                userConfig: userConfig!,
             }}
         >
             <UrlPageHashHandler />
diff --git a/apps/fullstack/components/editor/tools/context.tsx b/apps/fullstack/components/editor/tools/context.tsx
index 738de71f2b05747f2eac39e5f133231d1b226ced..f6ed1c0be4803cbdd765a876c2bf71fa852d8ea3 100644
--- a/apps/fullstack/components/editor/tools/context.tsx
+++ b/apps/fullstack/components/editor/tools/context.tsx
@@ -77,8 +77,6 @@ interface ToolsContextI {
         from: Rect,
         to_unit?: CoordUnit,
     ) => Rect;
-
-    defaultUserConfig: ReturnType<typeof useUser>["config"];
 }
 
 const ToolContext = createContext<ToolsContextI | null>(null);
@@ -118,7 +116,6 @@ export function ToolsContextProvider({
     const { workers } = useWorkerContext();
     const { snips } = useQueuedSnipsContext();
     const { activeSnipId, scale } = useEditorContext();
-    const { config: defaultUserConfig } = useUser(true);
 
     // pixel ratio
     const pr = useDevicePixelRatio();
@@ -226,7 +223,6 @@ export function ToolsContextProvider({
                 transformRectCoords,
                 activeSnip,
                 placePageIdx: 0,
-                defaultUserConfig,
             }}
         >
             {inner}
diff --git a/apps/fullstack/components/editor/tools/doodle/context.tsx b/apps/fullstack/components/editor/tools/doodle/context.tsx
index ff8de7ee0ef6e890929225852d5cb9fda469469e..945812893a980c50b76b87dcd826c6ca30b7315d 100644
--- a/apps/fullstack/components/editor/tools/doodle/context.tsx
+++ b/apps/fullstack/components/editor/tools/doodle/context.tsx
@@ -10,9 +10,10 @@ import {
     useState,
 } from "react";
 
-import { useToolsContext } from "../context";
 import { ToolContextProps } from "../types";
 
+import { useEditorContext } from "components/editor/context";
+
 export interface DoodleContextI {
     // The current tool
     colorList: string[];
@@ -39,7 +40,7 @@ const DoodleToolContext = createContext<DoodleContextI | null>(null);
 
 export function DoodleToolContextProvider({ children }: ToolContextProps) {
     const mounted = useRef(false);
-    const { defaultUserConfig } = useToolsContext();
+    const { userConfig } = useEditorContext();
 
     const [colorList, setColorList] = useState([
         "#000000",
@@ -56,35 +57,33 @@ export function DoodleToolContextProvider({ children }: ToolContextProps) {
 
     // Sync local state from user defaults
     useEffect(() => {
-        if (mounted.current || !defaultUserConfig) return;
+        if (mounted.current || !userConfig) return;
         mounted.current = true;
 
         setColorList((prev) => {
-            if (defaultUserConfig.pen_colors) {
-                return defaultUserConfig.pen_colors;
+            if (userConfig.pen_colors) {
+                return userConfig.pen_colors;
             }
             return prev;
         });
         setCurrentColorIdx((prev) => {
-            if (defaultUserConfig.pen_colors && defaultUserConfig.pen_color) {
-                const idx = defaultUserConfig.pen_colors.indexOf(
-                    defaultUserConfig.pen_color,
-                );
+            if (userConfig.pen_colors && userConfig.pen_color) {
+                const idx = userConfig.pen_colors.indexOf(userConfig.pen_color);
                 if (idx !== -1) return idx;
             }
             return prev;
         });
 
         setSize((prev) => {
-            if (defaultUserConfig.pen_size) {
-                return defaultUserConfig.pen_size;
+            if (userConfig.pen_size) {
+                return userConfig.pen_size;
             }
             return prev;
         });
 
         setSmoothing((prev) => {
-            if (defaultUserConfig.pen_smoothing) {
-                return defaultUserConfig.pen_smoothing;
+            if (userConfig.pen_smoothing) {
+                return userConfig.pen_smoothing;
             }
             return prev;
         });
@@ -92,7 +91,7 @@ export function DoodleToolContextProvider({ children }: ToolContextProps) {
         return () => {
             mounted.current = false;
         };
-    }, [defaultUserConfig]);
+    }, [userConfig]);
 
     return (
         <DoodleToolContext.Provider
diff --git a/apps/fullstack/components/editor/tools/text/context.tsx b/apps/fullstack/components/editor/tools/text/context.tsx
index 32151019126fe77933248a4307a7a755d3428d97..fbe83669d60f030d27730ec1df3a1178ce9c23ed 100644
--- a/apps/fullstack/components/editor/tools/text/context.tsx
+++ b/apps/fullstack/components/editor/tools/text/context.tsx
@@ -92,8 +92,8 @@ export function useTextToolContext() {
 
 export function TextToolContextProvider({ children }: ToolContextProps) {
     const { workers } = useWorkerContext();
-    const { activeSnip, placePageIdx, defaultUserConfig } = useToolsContext();
-    const { scale } = useEditorContext();
+    const { activeSnip, placePageIdx } = useToolsContext();
+    const { scale, userConfig } = useEditorContext();
     const pr = useDevicePixelRatio();
 
     // Get currently active text snip (if active)
@@ -225,24 +225,24 @@ export function TextToolContextProvider({ children }: ToolContextProps) {
 
     //Initial sync from db
     useEffect(() => {
-        if (mounted.current || !defaultUserConfig) return;
+        if (mounted.current || !userConfig) return;
         mounted.current = true;
 
         setTextStyles((prev) => {
-            if (defaultUserConfig.text_font) {
-                prev.fontFamily = defaultUserConfig.text_font as AllowedFonts;
+            if (userConfig.text_font) {
+                prev.fontFamily = userConfig.text_font as AllowedFonts;
             }
 
-            if (defaultUserConfig.text_fontSize) {
-                prev.fontSize = defaultUserConfig.text_fontSize;
+            if (userConfig.text_fontSize) {
+                prev.fontSize = userConfig.text_fontSize;
             }
 
-            if (defaultUserConfig.text_lineHeight) {
-                prev.lineHeight = defaultUserConfig.text_lineHeight;
+            if (userConfig.text_lineHeight) {
+                prev.lineHeight = userConfig.text_lineHeight;
             }
 
-            if (defaultUserConfig.text_lineWrap) {
-                prev.lineWrap = defaultUserConfig.text_lineWrap;
+            if (userConfig.text_lineWrap) {
+                prev.lineWrap = userConfig.text_lineWrap;
             }
 
             return { ...prev };
@@ -251,7 +251,7 @@ export function TextToolContextProvider({ children }: ToolContextProps) {
         return () => {
             mounted.current = false;
         };
-    }, [defaultUserConfig, setTextStyles]);
+    }, [userConfig, setTextStyles]);
 
     return (
         <TextToolContext.Provider