diff --git a/components/ui/UsernameInput.tsx b/components/ui/UsernameInput.tsx
new file mode 100644
index 00000000..31d2ba03
--- /dev/null
+++ b/components/ui/UsernameInput.tsx
@@ -0,0 +1,17 @@
+import React from "react";
+
+export const UsernameInput = React.forwardRef( (props, ref) => (
+  // todo, check if username is already taken here?
+  
+    
+    
+      
+        {typeof window !== "undefined" && window.location.hostname}/
+      
+      
+    
+  
+      
+        
+          
+        
+        
+          
Something went wrong
+          
+        
+      
+    
Loading...
;
     }
 
     const closeSuccessModal = () => { setSuccessModalOpen(false); }
 
+    const handleError = async (resp) => {
+      if (!resp.ok) {
+        const error = await resp.json();
+        throw new Error(error.message);
+      }
+    }
+
     async function updateProfileHandler(event) {
         event.preventDefault();
 
@@ -46,10 +58,10 @@ export default function Settings(props) {
             headers: {
                 'Content-Type': 'application/json'
             }
+        }).then(handleError).then( () => setSuccessModalOpen(true) ).catch( (err) => {
+          setHasErrors(true);
+          setErrorMessage(err.message);
         });
-
-        router.replace(router.asPath);
-        setSuccessModalOpen(true);
     }
 
     return(
@@ -60,6 +72,7 @@ export default function Settings(props) {