diff --git a/frontend/web/src/components/FeatureBadge.tsx b/frontend/web/src/components/FeatureBadge.tsx
new file mode 100644
index 0000000..3074be9
--- /dev/null
+++ b/frontend/web/src/components/FeatureBadge.tsx
@@ -0,0 +1,16 @@
+import { Tooltip } from "@mui/joy";
+import Icon from "./Icon";
+
+interface Props {
+  className?: string;
+}
+
+const FeatureBadge = ({ className }: Props) => {
+  return (
+    
+      
+    
+  );
+};
+
+export default FeatureBadge;
diff --git a/frontend/web/src/components/Logo.tsx b/frontend/web/src/components/Logo.tsx
index b2bff10..ddc17b4 100644
--- a/frontend/web/src/components/Logo.tsx
+++ b/frontend/web/src/components/Logo.tsx
@@ -1,5 +1,6 @@
 import classNames from "classnames";
 import { useWorkspaceStore } from "@/stores";
+import { PlanType } from "@/types/proto/api/v1/subscription_service";
 import Icon from "./Icon";
 
 interface Props {
@@ -8,7 +9,8 @@ interface Props {
 
 const Logo = ({ className }: Props) => {
   const workspaceStore = useWorkspaceStore();
-  const branding = workspaceStore.setting.branding ? new TextDecoder().decode(workspaceStore.setting.branding) : "";
+  const hasCustomBranding = workspaceStore.profile.plan === PlanType.PRO;
+  const branding = hasCustomBranding && workspaceStore.setting.branding ? new TextDecoder().decode(workspaceStore.setting.branding) : "";
   return (
     
       {branding ? (
diff --git a/frontend/web/src/components/setting/WorkspaceSection.tsx b/frontend/web/src/components/setting/WorkspaceSection.tsx
index 0a7887e..8ce21ec 100644
--- a/frontend/web/src/components/setting/WorkspaceSection.tsx
+++ b/frontend/web/src/components/setting/WorkspaceSection.tsx
@@ -6,7 +6,9 @@ import { useTranslation } from "react-i18next";
 import { workspaceServiceClient } from "@/grpcweb";
 import { useWorkspaceStore } from "@/stores";
 import { Visibility } from "@/types/proto/api/v1/common";
+import { PlanType } from "@/types/proto/api/v1/subscription_service";
 import { WorkspaceSetting } from "@/types/proto/api/v1/workspace_service";
+import FeatureBadge from "../FeatureBadge";
 import Icon from "../Icon";
 
 const getDefaultVisibility = (visibility?: Visibility) => {
@@ -31,7 +33,8 @@ const WorkspaceSection = () => {
   const [workspaceSetting, setWorkspaceSetting] = useState
(workspaceStore.setting);
   const originalWorkspaceSetting = useRef(workspaceStore.setting);
   const allowSave = !isEqual(originalWorkspaceSetting.current, workspaceSetting);
-  const branding = workspaceSetting.branding ? new TextDecoder().decode(workspaceSetting.branding) : "";
+  const hasCustomBranding = workspaceStore.profile.plan === PlanType.PRO;
+  const branding = hasCustomBranding && workspaceSetting.branding ? new TextDecoder().decode(workspaceSetting.branding) : "";
 
   const onBrandingChange = async (event: React.ChangeEvent) => {
     const files: File[] = Array.from(event.target.files || []);
@@ -96,22 +99,32 @@ const WorkspaceSection = () => {
       
         
           
-            
Custom branding
+            
+              Custom branding
+              
+            
             Recommand logo ratio: 1:1
           
-          
+          
             {branding ? (
-              
-                

+              
+                
 setWorkspaceSetting({ ...workspaceSetting, branding: new TextEncoder().encode("") })}
                 />
                  setWorkspaceSetting({ ...workspaceSetting, branding: new TextEncoder().encode("") })}
                 />
               
             ) : (
-              
+              
             )}
-            
+            
+            
(Click to select file)