diff --git a/web/client/src/App.jsx b/web/client/src/App.jsx
new file mode 100644
index 0000000..bbdce76
--- /dev/null
+++ b/web/client/src/App.jsx
@@ -0,0 +1,91 @@
+import React, { useEffect, useState } from 'react';
+import InventoryGrid from './components/InventoryGrid';
+import StorageOverview from './components/StorageOverview';
+import SmeltingPanel from './components/SmeltingPanel';
+import CraftingPanel from './components/CraftingPanel';
+import AlertsPanel from './components/AlertsPanel';
+import { useInventoryStore } from './store/inventoryStore';
+import './App.css';
+
+function App() {
+ const connect = useInventoryStore((state) => state.connect);
+ const connected = useInventoryStore((state) => state.connected);
+ const commandResult = useInventoryStore((state) => state.commandResult);
+ const [panelTab, setPanelTab] = useState('inventory');
+
+ useEffect(() => {
+ connect();
+ }, [connect]);
+
+ const renderPanelContent = () => {
+ switch (panelTab) {
+ case 'inventory':
+ return