+ );
+}
diff --git a/apps/frontend/src/app/layouts/index.ts b/apps/frontend/src/app/layouts/index.ts
new file mode 100644
index 0000000..763c036
--- /dev/null
+++ b/apps/frontend/src/app/layouts/index.ts
@@ -0,0 +1 @@
+export { AppLayout } from './AppLayout';
diff --git a/apps/frontend/src/app/providers/AppProviders.tsx b/apps/frontend/src/app/providers/AppProviders.tsx
new file mode 100644
index 0000000..222bc49
--- /dev/null
+++ b/apps/frontend/src/app/providers/AppProviders.tsx
@@ -0,0 +1,21 @@
+import { type ReactNode } from 'react';
+import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
+import { SessionProvider } from './SessionProvider';
+
+const queryClient = new QueryClient({
+ defaultOptions: {
+ queries: {
+ retry: 2,
+ staleTime: 900_000,
+ refetchOnWindowFocus: false,
+ },
+ },
+});
+
+export function AppProviders({ children }: { children: ReactNode }) {
+ return (
+