diff --git a/.jules/bolt.md b/.jules/bolt.md
new file mode 100644
index 0000000..bdc732e
--- /dev/null
+++ b/.jules/bolt.md
@@ -0,0 +1,3 @@
+## 2024-05-23 - [Lazy Loading Routes]
+**Learning:** Wrapped `AnimatedRoutes` in `Suspense` to enable `React.lazy` for route-based code splitting. This significantly reduces initial bundle size but requires a loading fallback.
+**Action:** Always check if code splitting is actually implemented vs just documented.
diff --git a/src/App.jsx b/src/App.jsx
index 4822715..c278c15 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -1,33 +1,42 @@
-import React from 'react';
+import React, { Suspense, lazy } from 'react';
import { BrowserRouter as Router, Routes, Route, useLocation } from 'react-router-dom';
import { AnimatePresence } from 'framer-motion';
-import PublicLayout from './layouts/PublicLayout';
-import LandingPage from './pages/LandingPage';
-import AboutPage from './pages/AboutPage';
-import FeaturesPage from './pages/FeaturesPage';
-import FaqPage from './pages/FaqPage';
-import AuthPage from './pages/AuthPage';
-import PricingPage from './pages/PricingPage';
-import TermsPage from './pages/TermsPage';
-import PrivacyPage from './pages/PrivacyPage';
-import CookiesPage from './pages/CookiesPage';
+import LoadingSpinner from './components/LoadingSpinner';
import CookieConsent from './components/CookieConsent';
-import DashboardLayout from './layouts/DashboardLayout';
-import DashboardHome from './pages/dashboard/DashboardHome';
-import DocumentProcessing from './pages/dashboard/DocumentProcessing';
-import DocumentResult from './pages/dashboard/DocumentResult';
-import History from './pages/dashboard/History';
-import MyDocuments from './pages/dashboard/MyDocuments';
-import Analytics from './pages/dashboard/Analytics';
-import Settings from './pages/dashboard/Settings';
-import Billing from './pages/dashboard/Billing';
-import Support from './pages/dashboard/Support';
-import Notifications from './pages/dashboard/Notifications';
-import AdminLayout from './layouts/AdminLayout';
-import AdminHome from './pages/admin/AdminHome';
import AuthProvider from './context/AuthProvider';
import ProtectedRoute from './components/auth/ProtectedRoute';
+// Lazy load layouts
+const PublicLayout = lazy(() => import('./layouts/PublicLayout'));
+const DashboardLayout = lazy(() => import('./layouts/DashboardLayout'));
+const AdminLayout = lazy(() => import('./layouts/AdminLayout'));
+
+// Lazy load pages
+const LandingPage = lazy(() => import('./pages/LandingPage'));
+const AboutPage = lazy(() => import('./pages/AboutPage'));
+const FeaturesPage = lazy(() => import('./pages/FeaturesPage'));
+const FaqPage = lazy(() => import('./pages/FaqPage'));
+const AuthPage = lazy(() => import('./pages/AuthPage'));
+const PricingPage = lazy(() => import('./pages/PricingPage'));
+const TermsPage = lazy(() => import('./pages/TermsPage'));
+const PrivacyPage = lazy(() => import('./pages/PrivacyPage'));
+const CookiesPage = lazy(() => import('./pages/CookiesPage'));
+
+// Lazy load dashboard pages
+const DashboardHome = lazy(() => import('./pages/dashboard/DashboardHome'));
+const DocumentProcessing = lazy(() => import('./pages/dashboard/DocumentProcessing'));
+const DocumentResult = lazy(() => import('./pages/dashboard/DocumentResult'));
+const History = lazy(() => import('./pages/dashboard/History'));
+const MyDocuments = lazy(() => import('./pages/dashboard/MyDocuments'));
+const Analytics = lazy(() => import('./pages/dashboard/Analytics'));
+const Settings = lazy(() => import('./pages/dashboard/Settings'));
+const Billing = lazy(() => import('./pages/dashboard/Billing'));
+const Support = lazy(() => import('./pages/dashboard/Support'));
+const Notifications = lazy(() => import('./pages/dashboard/Notifications'));
+
+// Lazy load admin pages
+const AdminHome = lazy(() => import('./pages/admin/AdminHome'));
+
function AnimatedRoutes() {
const location = useLocation();
@@ -76,8 +85,10 @@ function App() {
return (