diff --git a/apps/web/src/app.d.ts b/apps/web/src/app.d.ts
index 3ba5e57..09e8ff8 100644
--- a/apps/web/src/app.d.ts
+++ b/apps/web/src/app.d.ts
@@ -5,6 +5,7 @@ declare global {
 	namespace App {
 		interface Locals {
 			pocketBase: PocketBase;
+			user: object;
 		}
 		// interface Error {}
 		// interface PageData {}
diff --git a/apps/web/src/hooks.server.ts b/apps/web/src/hooks.server.ts
index a2fa874..5d8ff7c 100644
--- a/apps/web/src/hooks.server.ts
+++ b/apps/web/src/hooks.server.ts
@@ -1,4 +1,4 @@
-import type { Handle } from '@sveltejs/kit';
+import { redirect, type Handle } from '@sveltejs/kit';
 import PocketBase from 'pocketbase';
 import { pb } from '$lib/pocketbase';
 import { PUBLIC_CLIENT_PB } from '$env/static/public';
@@ -10,7 +10,18 @@ export const handle: Handle = async ({ event, resolve }) => {
 	pb.set(event.locals.pocketBase);
 
 	event.locals.pocketBase.authStore.loadFromCookie(event.request.headers.get('cookie') ?? '');
-
+	// try {
+	// 	//refresh the auth if it is valid
+	// 	if (!event.locals.pocketBase.authStore.isValid)
+	// 		await event.locals.pocketBase
+	// 			.collection('users')
+	// 			.authRefresh<{ id: string; email: string }>();
+	// 	//spread the model to locals.user to be available in all pages
+	// 	event.locals.user = { ...event.locals.pocketBase.authStore.model };
+	// } catch (err) {
+	// 	console.log(err, 'error in hooks');
+	// 	event.locals.pocketBase.authStore.clear();
+	// }
 	const response = await resolve(event);
 
 	response.headers.set(
diff --git a/apps/web/src/lib/components/site/nav/user-nav.svelte b/apps/web/src/lib/components/site/nav/user-nav.svelte
new file mode 100644
index 0000000..9d1e550
--- /dev/null
+++ b/apps/web/src/lib/components/site/nav/user-nav.svelte
@@ -0,0 +1,51 @@
+<script lang="ts">
+	import * as Avatar from '$lib/components/ui/avatar';
+	import { Button } from '$lib/components/ui/button';
+	import * as DropdownMenu from '$lib/components/ui/dropdown-menu';
+	import type { LayoutData } from '../../../../routes/$types';
+
+	export let authenticated = false;
+	export let user = {};
+</script>
+
+{#if authenticated}
+	<pre>{JSON.stringify(user)}</pre>
+	<DropdownMenu.Root>
+		<DropdownMenu.Trigger asChild let:builder>
+			<Button variant="ghost" builders={[builder]} class="relative h-8 w-8 rounded-full">
+				<Avatar.Root class="h-9 w-9">
+					<!-- <Avatar.Image src="/avatars/03.png" alt="@shadcn" /> -->
+					<Avatar.Fallback>BB</Avatar.Fallback>
+				</Avatar.Root>
+			</Button>
+		</DropdownMenu.Trigger>
+		<DropdownMenu.Content class="w-56" align="end">
+			<DropdownMenu.Label class="font-normal">
+				<div class="flex flex-col space-y-1">
+					<p class="text-sm font-medium leading-none">BB</p>
+					<p class="text-muted-foreground text-xs leading-none">email@email.com</p>
+				</div>
+			</DropdownMenu.Label>
+			<DropdownMenu.Separator />
+			<DropdownMenu.Group>
+				<DropdownMenu.Item>
+					Profile
+					<DropdownMenu.Shortcut>⇧⌘P</DropdownMenu.Shortcut>
+				</DropdownMenu.Item>
+				<DropdownMenu.Item>
+					Settings
+					<DropdownMenu.Shortcut>⌘S</DropdownMenu.Shortcut>
+				</DropdownMenu.Item>
+				<DropdownMenu.Item>New Dashboard</DropdownMenu.Item>
+			</DropdownMenu.Group>
+			<DropdownMenu.Separator />
+			<DropdownMenu.Item href="/logout">
+				Log out
+				<DropdownMenu.Shortcut>⇧⌘Q</DropdownMenu.Shortcut>
+			</DropdownMenu.Item>
+		</DropdownMenu.Content>
+	</DropdownMenu.Root>
+{:else}
+	<Button href="/login">Login</Button>
+	<Button href="/register" variant="outline">Signup</Button>
+{/if}
diff --git a/apps/web/src/lib/components/site/site-navbar.svelte b/apps/web/src/lib/components/site/site-navbar.svelte
index 4d75607..7df494f 100644
--- a/apps/web/src/lib/components/site/site-navbar.svelte
+++ b/apps/web/src/lib/components/site/site-navbar.svelte
@@ -1,7 +1,10 @@
 <script lang="ts">
 	import { Icons, ModeToggle, MainNav, MobileNav } from '$lib/components/site';
+	import { siteConfig } from '$lib/config/site';
+	import UserNav from './nav/user-nav.svelte';
 
 	export let authenticated = false;
+	export let user = {};
 </script>
 
 <header
@@ -11,13 +14,15 @@
 		<a href="/" class="mr-6 flex items-center space-x-2">
 			<span class="sr-only">Logo (return home)</span>
 			<Icons.logo />
+			<span class="text-xl font-bold tracking-tight">{siteConfig.name}</span>
 		</a>
-		<MainNav {authenticated}/>
-		<div class="flex flex-1 items-center justify-between space-x-2 sm:space-x-4 md:justify-end">
+		<MainNav {authenticated} />
+		<div class="flex flex-1 items-center justify-end space-x-2 sm:space-x-4">
 			<nav class="flex">
 				<ModeToggle />
 			</nav>
+			<MobileNav {authenticated} />
+			<UserNav {authenticated} {user}/>
 		</div>
-		<MobileNav {authenticated}/>
 	</div>
 </header>
diff --git a/apps/web/src/lib/config/nav.ts b/apps/web/src/lib/config/nav.ts
index 6e4b3fe..773c9f9 100644
--- a/apps/web/src/lib/config/nav.ts
+++ b/apps/web/src/lib/config/nav.ts
@@ -17,26 +17,21 @@ export const navConfig: NavConfig = {
 			href: '/dashboard',
 			auth: true
 		},
-		{
-			title: 'Settings',
-			href: '/settings',
-			auth: true
-		},
-		{
-			title: 'Login',
-			href: '/login',
-			auth: false,
-		},
-		{
-			title: 'Register',
-			href: '/register',
-			auth: false,
-		},
-		{
-			title: 'Logout',
-			href: '/logout',
-			auth: true
-		},
+		// {
+		// 	title: 'Settings',
+		// 	href: '/settings',
+		// 	auth: true
+		// },
+		// {
+		// 	title: 'Login',
+		// 	href: '/login',
+		// 	auth: false,
+		// },
+		// {
+		// 	title: 'Register',
+		// 	href: '/register',
+		// 	auth: false,
+		// },
 	],
 	sidebarNav: []
 };
diff --git a/apps/web/src/routes/(dashboard)/+layout.server.ts b/apps/web/src/routes/(auth)/(dashboard)/+layout.server.ts
similarity index 100%
rename from apps/web/src/routes/(dashboard)/+layout.server.ts
rename to apps/web/src/routes/(auth)/(dashboard)/+layout.server.ts
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-checkbox.svelte b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-checkbox.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-checkbox.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-checkbox.svelte
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-column-header.svelte b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-column-header.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-column-header.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-column-header.svelte
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-faceted-filter.svelte b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-faceted-filter.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-faceted-filter.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-faceted-filter.svelte
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-pagination.svelte b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-pagination.svelte
similarity index 96%
rename from apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-pagination.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-pagination.svelte
index 0773949..282a47d 100644
--- a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-pagination.svelte
+++ b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-pagination.svelte
@@ -7,11 +7,11 @@
 		DoubleArrowLeft
 	} from "radix-icons-svelte";
 	import * as Select from "$lib/components/ui/select";
-	import type { Task } from "../(data)/schemas";
+	import type { Ticket } from "../(data)/schemas";
 	import type { AnyPlugins } from "svelte-headless-table/plugins";
 	import type { TableViewModel } from "svelte-headless-table";
 
-	export let tableModel: TableViewModel<Task, AnyPlugins>;
+	export let tableModel: TableViewModel<Ticket, AnyPlugins>;
 
 	const { pageRows, pluginStates, rows } = tableModel;
 
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-priority-cell.svelte b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-priority-cell.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-priority-cell.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-priority-cell.svelte
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-row-actions.svelte b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-row-actions.svelte
similarity index 91%
rename from apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-row-actions.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-row-actions.svelte
index adfc584..1b8b501 100644
--- a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-row-actions.svelte
+++ b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-row-actions.svelte
@@ -3,10 +3,10 @@
 	import { Button } from "$lib/components/ui/button";
 	import * as DropdownMenu from "$lib/components/ui/dropdown-menu";
 	import { labels } from "../(data)/data";
-	import { taskSchema, type Task } from "../(data)/schemas";
+	import { ticketSchema, type Ticket } from "../(data)/schemas";
 
-	export let row: Task;
-	const task = taskSchema.parse(row);
+	export let row: Ticket;
+	const task = ticketSchema.parse(row);
 </script>
 
 <DropdownMenu.Root>
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-status-cell.svelte b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-status-cell.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-status-cell.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-status-cell.svelte
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-title-cell.svelte b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-title-cell.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-title-cell.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-title-cell.svelte
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-toolbar.svelte b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-toolbar.svelte
similarity index 84%
rename from apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-toolbar.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-toolbar.svelte
index 3bee89d..cdda69f 100644
--- a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-toolbar.svelte
+++ b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-toolbar.svelte
@@ -1,15 +1,15 @@
 <script lang="ts">
 	import { Input } from "$lib/components/ui/input";
 	import { DataTableFacetedFilter, DataTableViewOptions } from ".";
-	import type { AnyPlugins } from "svelte-headless-table/lib/types/TablePlugin";
-	import type { Task } from "../(data)/schemas";
-	import type { TableViewModel } from "svelte-headless-table/lib/createViewModel";
+	import type { Ticket } from "../(data)/schemas";
 	import Button from "$lib/components/ui/button/button.svelte";
 	import { Cross2 } from "radix-icons-svelte";
 	import { statuses, priorities } from "../(data)/data";
 	import type { Writable } from "svelte/store";
+	import type { TableViewModel } from "svelte-headless-table";
+	import type { AnyPlugins } from "svelte-headless-table/plugins";
 
-	export let tableModel: TableViewModel<Task, AnyPlugins>;
+	export let tableModel: TableViewModel<Ticket, AnyPlugins>;
 
 	const { pluginStates } = tableModel;
 	const {
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-view-options.svelte b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-view-options.svelte
similarity index 81%
rename from apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-view-options.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-view-options.svelte
index 84be3ae..361b6f9 100644
--- a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table-view-options.svelte
+++ b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table-view-options.svelte
@@ -2,11 +2,11 @@
 	import { MixerHorizontal } from "radix-icons-svelte";
 	import { Button } from "$lib/components/ui/button";
 	import * as DropdownMenu from "$lib/components/ui/dropdown-menu";
-	import type { AnyPlugins } from "svelte-headless-table/lib/types/TablePlugin";
-	import type { Task } from "../(data)/schemas";
-	import type { TableViewModel } from "svelte-headless-table/lib/createViewModel";
+	import type { Ticket } from "../(data)/schemas";
+	import type { TableViewModel } from "svelte-headless-table";
+	import type { AnyPlugins } from "svelte-headless-table/plugins";
 
-	export let tableModel: TableViewModel<Task, AnyPlugins>;
+	export let tableModel: TableViewModel<Ticket, AnyPlugins>;
 	const { pluginStates, flatColumns } = tableModel;
 	const { hiddenColumnIds } = pluginStates.hide;
 
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table.svelte b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table.svelte
similarity index 98%
rename from apps/web/src/routes/(dashboard)/dashboard/(components)/data-table.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table.svelte
index 9fb451a..27cc0c9 100644
--- a/apps/web/src/routes/(dashboard)/dashboard/(components)/data-table.svelte
+++ b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/data-table.svelte
@@ -21,9 +21,9 @@
 		DataTablePagination
 	} from ".";
 
-	import type { Task } from "../(data)/schemas";
+	import type { Ticket } from "../(data)/schemas";
 
-	export let data: Task[];
+	export let data: Ticket[];
 
 	const table = createTable(readable(data), {
 		select: addSelectedRows(),
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(components)/index.ts b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/index.ts
similarity index 100%
rename from apps/web/src/routes/(dashboard)/dashboard/(components)/index.ts
rename to apps/web/src/routes/(auth)/(dashboard)/dashboard/(components)/index.ts
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(data)/data.ts b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(data)/data.ts
similarity index 93%
rename from apps/web/src/routes/(dashboard)/dashboard/(data)/data.ts
rename to apps/web/src/routes/(auth)/(dashboard)/dashboard/(data)/data.ts
index 7412a7f..3a8bccd 100644
--- a/apps/web/src/routes/(dashboard)/dashboard/(data)/data.ts
+++ b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(data)/data.ts
@@ -12,15 +12,15 @@ import {
 export const labels = [
 	{
 		value: "bug",
-		label: "Bug"
+		label: "Incident"
 	},
 	{
 		value: "feature",
-		label: "Feature"
+		label: "Change"
 	},
 	{
 		value: "documentation",
-		label: "Documentation"
+		label: "Information"
 	}
 ];
 
diff --git a/apps/web/src/routes/(auth)/(dashboard)/dashboard/(data)/schemas.ts b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(data)/schemas.ts
new file mode 100644
index 0000000..9ebdc68
--- /dev/null
+++ b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(data)/schemas.ts
@@ -0,0 +1,18 @@
+import { z } from "zod";
+
+// We're keeping a simple non-relational schema here.
+// IRL, you will have a schema for your data models.
+export const ticketSchema = z.object({
+	id: z.string(),
+	// solution: z.string().optional(),
+	title: z.string(),
+	status: z.string(),
+	label: z.string(),
+	// createdAt: z.date(),
+	// updatedAt: z.date(),
+	priority: z.string(), // z.number().min(0).max(4),
+	// source: z.number(),
+	// assignee: z.string(),
+});
+
+export type Ticket = z.infer<typeof ticketSchema>;
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(data)/tasks.json b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(data)/tickets.json
similarity index 80%
rename from apps/web/src/routes/(dashboard)/dashboard/(data)/tasks.json
rename to apps/web/src/routes/(auth)/(dashboard)/dashboard/(data)/tickets.json
index 6d26c8d..3379697 100644
--- a/apps/web/src/routes/(dashboard)/dashboard/(data)/tasks.json
+++ b/apps/web/src/routes/(auth)/(dashboard)/dashboard/(data)/tickets.json
@@ -4,699 +4,799 @@
 		"title": "You can't compress the program without quantifying the open-source SSD pixel!",
 		"status": "in progress",
 		"label": "documentation",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-7878",
 		"title": "Try to calculate the EXE feed, maybe it will index the multi-byte pixel!",
 		"status": "backlog",
 		"label": "documentation",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-7839",
 		"title": "We need to bypass the neural TCP card!",
 		"status": "todo",
 		"label": "bug",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-5562",
 		"title": "The SAS interface is down, bypass the open-source pixel so we can back up the PNG bandwidth!",
 		"status": "backlog",
 		"label": "feature",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-8686",
 		"title": "I'll parse the wireless SSL protocol, that should driver the API panel!",
 		"status": "canceled",
 		"label": "feature",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-1280",
 		"title": "Use the digital TLS panel, then you can transmit the haptic system!",
 		"status": "done",
 		"label": "bug",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-7262",
 		"title": "The UTF8 application is down, parse the neural bandwidth so we can back up the PNG firewall!",
 		"status": "done",
 		"label": "feature",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-1138",
 		"title": "Generating the driver won't do anything, we need to quantify the 1080p SMTP bandwidth!",
 		"status": "in progress",
 		"label": "feature",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-7184",
 		"title": "We need to program the back-end THX pixel!",
 		"status": "todo",
 		"label": "feature",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-5160",
 		"title": "Calculating the bus won't do anything, we need to navigate the back-end JSON protocol!",
 		"status": "in progress",
 		"label": "documentation",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-5618",
 		"title": "Generating the driver won't do anything, we need to index the online SSL application!",
 		"status": "done",
 		"label": "documentation",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-6699",
 		"title": "I'll transmit the wireless JBOD capacitor, that should hard drive the SSD feed!",
 		"status": "backlog",
 		"label": "documentation",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-2858",
 		"title": "We need to override the online UDP bus!",
 		"status": "backlog",
 		"label": "bug",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-9864",
 		"title": "I'll reboot the 1080p FTP panel, that should matrix the HEX hard drive!",
 		"status": "done",
 		"label": "bug",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-8404",
 		"title": "We need to generate the virtual HEX alarm!",
 		"status": "in progress",
 		"label": "bug",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-5365",
 		"title": "Backing up the pixel won't do anything, we need to transmit the primary IB array!",
 		"status": "in progress",
 		"label": "documentation",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-1780",
 		"title": "The CSS feed is down, index the bluetooth transmitter so we can compress the CLI protocol!",
 		"status": "todo",
 		"label": "documentation",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-6938",
 		"title": "Use the redundant SCSI application, then you can hack the optical alarm!",
 		"status": "todo",
 		"label": "documentation",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-9885",
 		"title": "We need to compress the auxiliary VGA driver!",
 		"status": "backlog",
 		"label": "bug",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-3216",
 		"title": "Transmitting the transmitter won't do anything, we need to compress the virtual HDD sensor!",
 		"status": "backlog",
 		"label": "documentation",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-9285",
 		"title": "The IP monitor is down, copy the haptic alarm so we can generate the HTTP transmitter!",
 		"status": "todo",
 		"label": "bug",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-1024",
 		"title": "Overriding the microchip won't do anything, we need to transmit the digital OCR transmitter!",
 		"status": "in progress",
 		"label": "documentation",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-7068",
 		"title": "You can't generate the capacitor without indexing the wireless HEX pixel!",
 		"status": "canceled",
 		"label": "bug",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-6502",
 		"title": "Navigating the microchip won't do anything, we need to bypass the back-end SQL bus!",
 		"status": "todo",
 		"label": "bug",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-5326",
 		"title": "We need to hack the redundant UTF8 transmitter!",
 		"status": "todo",
 		"label": "bug",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-6274",
 		"title": "Use the virtual PCI circuit, then you can parse the bluetooth alarm!",
 		"status": "canceled",
 		"label": "documentation",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-1571",
 		"title": "I'll input the neural DRAM circuit, that should protocol the SMTP interface!",
 		"status": "in progress",
 		"label": "feature",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-9518",
 		"title": "Compressing the interface won't do anything, we need to compress the online SDD matrix!",
 		"status": "canceled",
 		"label": "documentation",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-5581",
 		"title": "I'll synthesize the digital COM pixel, that should transmitter the UTF8 protocol!",
 		"status": "backlog",
 		"label": "documentation",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-2197",
 		"title": "Parsing the feed won't do anything, we need to copy the bluetooth DRAM bus!",
 		"status": "todo",
 		"label": "documentation",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-8484",
 		"title": "We need to parse the solid state UDP firewall!",
 		"status": "in progress",
 		"label": "bug",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-9892",
 		"title": "If we back up the application, we can get to the UDP application through the multi-byte THX capacitor!",
 		"status": "done",
 		"label": "documentation",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-9616",
 		"title": "We need to synthesize the cross-platform ASCII pixel!",
 		"status": "in progress",
 		"label": "feature",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-9744",
 		"title": "Use the back-end IP card, then you can input the solid state hard drive!",
 		"status": "done",
 		"label": "documentation",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-1376",
 		"title": "Generating the alarm won't do anything, we need to generate the mobile IP capacitor!",
 		"status": "backlog",
 		"label": "documentation",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-7382",
 		"title": "If we back up the firewall, we can get to the RAM alarm through the primary UTF8 pixel!",
 		"status": "todo",
 		"label": "feature",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-2290",
 		"title": "I'll compress the virtual JSON panel, that should application the UTF8 bus!",
 		"status": "canceled",
 		"label": "documentation",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-1533",
 		"title": "You can't input the firewall without overriding the wireless TCP firewall!",
 		"status": "done",
 		"label": "bug",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-4920",
 		"title": "Bypassing the hard drive won't do anything, we need to input the bluetooth JSON program!",
 		"status": "in progress",
 		"label": "bug",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-5168",
 		"title": "If we synthesize the bus, we can get to the IP panel through the virtual TLS array!",
 		"status": "in progress",
 		"label": "feature",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-7103",
 		"title": "We need to parse the multi-byte EXE bandwidth!",
 		"status": "canceled",
 		"label": "feature",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-4314",
 		"title": "If we compress the program, we can get to the XML alarm through the multi-byte COM matrix!",
 		"status": "in progress",
 		"label": "bug",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-3415",
 		"title": "Use the cross-platform XML application, then you can quantify the solid state feed!",
 		"status": "todo",
 		"label": "feature",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-8339",
 		"title": "Try to calculate the DNS interface, maybe it will input the bluetooth capacitor!",
 		"status": "in progress",
 		"label": "feature",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-6995",
 		"title": "Try to hack the XSS bandwidth, maybe it will override the bluetooth matrix!",
 		"status": "todo",
 		"label": "feature",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-8053",
 		"title": "If we connect the program, we can get to the UTF8 matrix through the digital UDP protocol!",
 		"status": "todo",
 		"label": "feature",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-4336",
 		"title": "If we synthesize the microchip, we can get to the SAS sensor through the optical UDP program!",
 		"status": "todo",
 		"label": "documentation",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-8790",
 		"title": "I'll back up the optical COM alarm, that should alarm the RSS capacitor!",
 		"status": "done",
 		"label": "bug",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-8980",
 		"title": "Try to navigate the SQL transmitter, maybe it will back up the virtual firewall!",
 		"status": "canceled",
 		"label": "bug",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-7342",
 		"title": "Use the neural CLI card, then you can parse the online port!",
 		"status": "backlog",
 		"label": "documentation",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-5608",
 		"title": "I'll hack the haptic SSL program, that should bus the UDP transmitter!",
 		"status": "canceled",
 		"label": "documentation",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-1606",
 		"title": "I'll generate the bluetooth PNG firewall, that should pixel the SSL driver!",
 		"status": "done",
 		"label": "feature",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-7872",
 		"title": "Transmitting the circuit won't do anything, we need to reboot the 1080p RSS monitor!",
 		"status": "canceled",
 		"label": "feature",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-4167",
 		"title": "Use the cross-platform SMS circuit, then you can synthesize the optical feed!",
 		"status": "canceled",
 		"label": "bug",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-9581",
 		"title": "You can't index the port without hacking the cross-platform XSS monitor!",
 		"status": "backlog",
 		"label": "documentation",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-8806",
 		"title": "We need to bypass the back-end SSL panel!",
 		"status": "done",
 		"label": "bug",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-6542",
 		"title": "Try to quantify the RSS firewall, maybe it will quantify the open-source system!",
 		"status": "done",
 		"label": "feature",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-6806",
 		"title": "The VGA protocol is down, reboot the back-end matrix so we can parse the CSS panel!",
 		"status": "canceled",
 		"label": "documentation",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-9549",
 		"title": "You can't bypass the bus without connecting the neural JBOD bus!",
 		"status": "todo",
 		"label": "feature",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-1075",
 		"title": "Backing up the driver won't do anything, we need to parse the redundant RAM pixel!",
 		"status": "done",
 		"label": "feature",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-1427",
 		"title": "Use the auxiliary PCI circuit, then you can calculate the cross-platform interface!",
 		"status": "done",
 		"label": "documentation",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-1907",
 		"title": "Hacking the circuit won't do anything, we need to back up the online DRAM system!",
 		"status": "todo",
 		"label": "documentation",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-4309",
 		"title": "If we generate the system, we can get to the TCP sensor through the optical GB pixel!",
 		"status": "backlog",
 		"label": "bug",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-3973",
 		"title": "I'll parse the back-end ADP array, that should bandwidth the RSS bandwidth!",
 		"status": "todo",
 		"label": "feature",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-7962",
 		"title": "Use the wireless RAM program, then you can hack the cross-platform feed!",
 		"status": "canceled",
 		"label": "bug",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-3360",
 		"title": "You can't quantify the program without synthesizing the neural OCR interface!",
 		"status": "done",
 		"label": "feature",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-9887",
 		"title": "Use the auxiliary ASCII sensor, then you can connect the solid state port!",
 		"status": "backlog",
 		"label": "bug",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-3649",
 		"title": "I'll input the virtual USB system, that should circuit the DNS monitor!",
 		"status": "in progress",
 		"label": "feature",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-3586",
 		"title": "If we quantify the circuit, we can get to the CLI feed through the mobile SMS hard drive!",
 		"status": "in progress",
 		"label": "bug",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-5150",
 		"title": "I'll hack the wireless XSS port, that should transmitter the IP interface!",
 		"status": "canceled",
 		"label": "feature",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-3652",
 		"title": "The SQL interface is down, override the optical bus so we can program the ASCII interface!",
 		"status": "backlog",
 		"label": "feature",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-6884",
 		"title": "Use the digital PCI circuit, then you can synthesize the multi-byte microchip!",
 		"status": "canceled",
 		"label": "feature",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-1591",
 		"title": "We need to connect the mobile XSS driver!",
 		"status": "in progress",
 		"label": "feature",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-3802",
 		"title": "Try to override the ASCII protocol, maybe it will parse the virtual matrix!",
 		"status": "in progress",
 		"label": "feature",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-7253",
 		"title": "Programming the capacitor won't do anything, we need to bypass the neural IB hard drive!",
 		"status": "backlog",
 		"label": "bug",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-9739",
 		"title": "We need to hack the multi-byte HDD bus!",
 		"status": "done",
 		"label": "documentation",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-4424",
 		"title": "Try to hack the HEX alarm, maybe it will connect the optical pixel!",
 		"status": "in progress",
 		"label": "documentation",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-3922",
 		"title": "You can't back up the capacitor without generating the wireless PCI program!",
 		"status": "backlog",
 		"label": "bug",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-4921",
 		"title": "I'll index the open-source IP feed, that should system the GB application!",
 		"status": "canceled",
 		"label": "bug",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-5814",
 		"title": "We need to calculate the 1080p AGP feed!",
 		"status": "backlog",
 		"label": "bug",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-2645",
 		"title": "Synthesizing the system won't do anything, we need to navigate the multi-byte HDD firewall!",
 		"status": "todo",
 		"label": "documentation",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-4535",
 		"title": "Try to copy the JSON circuit, maybe it will connect the wireless feed!",
 		"status": "in progress",
 		"label": "feature",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-4463",
 		"title": "We need to copy the solid state AGP monitor!",
 		"status": "done",
 		"label": "documentation",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-9745",
 		"title": "If we connect the protocol, we can get to the GB system through the bluetooth PCI microchip!",
 		"status": "canceled",
 		"label": "feature",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-2080",
 		"title": "If we input the bus, we can get to the RAM matrix through the auxiliary RAM card!",
 		"status": "todo",
 		"label": "bug",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-3838",
 		"title": "I'll bypass the online TCP application, that should panel the AGP system!",
 		"status": "backlog",
 		"label": "bug",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-1340",
 		"title": "We need to navigate the virtual PNG circuit!",
 		"status": "todo",
 		"label": "bug",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-6665",
 		"title": "If we parse the monitor, we can get to the SSD hard drive through the cross-platform AGP alarm!",
 		"status": "canceled",
 		"label": "feature",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-7585",
 		"title": "If we calculate the hard drive, we can get to the SSL program through the multi-byte CSS microchip!",
 		"status": "backlog",
 		"label": "feature",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-6319",
 		"title": "We need to copy the multi-byte SCSI program!",
 		"status": "backlog",
 		"label": "bug",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-4369",
 		"title": "Try to input the SCSI bus, maybe it will generate the 1080p pixel!",
 		"status": "backlog",
 		"label": "bug",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-9035",
 		"title": "We need to override the solid state PNG array!",
 		"status": "canceled",
 		"label": "documentation",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-3970",
 		"title": "You can't index the transmitter without quantifying the haptic ASCII card!",
 		"status": "todo",
 		"label": "documentation",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-4473",
 		"title": "You can't bypass the protocol without overriding the neural RSS program!",
 		"status": "todo",
 		"label": "documentation",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-4136",
 		"title": "You can't hack the hard drive without hacking the primary JSON program!",
 		"status": "canceled",
 		"label": "bug",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-3939",
 		"title": "Use the back-end SQL firewall, then you can connect the neural hard drive!",
 		"status": "done",
 		"label": "feature",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-2007",
 		"title": "I'll input the back-end USB protocol, that should bandwidth the PCI system!",
 		"status": "backlog",
 		"label": "bug",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-7516",
 		"title": "Use the primary SQL program, then you can generate the auxiliary transmitter!",
 		"status": "done",
 		"label": "documentation",
-		"priority": "medium"
+		"priority": "medium",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-6906",
 		"title": "Try to back up the DRAM system, maybe it will reboot the online transmitter!",
 		"status": "done",
 		"label": "feature",
-		"priority": "high"
+		"priority": "high",
+		"assignee": ""
 	},
 	{
 		"id": "TASK-5207",
 		"title": "The SMS interface is down, copy the bluetooth bus so we can quantify the VGA card!",
 		"status": "in progress",
 		"label": "bug",
-		"priority": "low"
+		"priority": "low",
+		"assignee": ""
 	}
 ]
diff --git a/apps/web/src/routes/(auth)/(dashboard)/dashboard/+page.svelte b/apps/web/src/routes/(auth)/(dashboard)/dashboard/+page.svelte
new file mode 100644
index 0000000..730459b
--- /dev/null
+++ b/apps/web/src/routes/(auth)/(dashboard)/dashboard/+page.svelte
@@ -0,0 +1,13 @@
+<script lang="ts">
+	import DataTable from "./(components)/data-table.svelte";
+	import ticketData from "./(data)/tickets.json";
+</script>
+
+<div class="hidden h-full flex-1 flex-col space-y-8 p-8 md:flex">
+	<div class="flex items-center justify-between space-y-2">
+		<div>
+			<h2 class="text-2xl font-bold tracking-tight">Dashboard</h2>
+		</div>
+	</div>
+	<DataTable data={ticketData} />
+</div>
diff --git a/apps/web/src/routes/(dashboard)/settings/(components)/sidebar-nav.svelte b/apps/web/src/routes/(auth)/(dashboard)/settings/(components)/sidebar-nav.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/settings/(components)/sidebar-nav.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/settings/(components)/sidebar-nav.svelte
diff --git a/apps/web/src/routes/(dashboard)/settings/+layout.svelte b/apps/web/src/routes/(auth)/(dashboard)/settings/+layout.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/settings/+layout.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/settings/+layout.svelte
diff --git a/apps/web/src/routes/(dashboard)/settings/+page.server.ts b/apps/web/src/routes/(auth)/(dashboard)/settings/+page.server.ts
similarity index 100%
rename from apps/web/src/routes/(dashboard)/settings/+page.server.ts
rename to apps/web/src/routes/(auth)/(dashboard)/settings/+page.server.ts
diff --git a/apps/web/src/routes/(dashboard)/settings/+page.svelte b/apps/web/src/routes/(auth)/(dashboard)/settings/+page.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/settings/+page.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/settings/+page.svelte
diff --git a/apps/web/src/routes/(dashboard)/settings/account/+page.server.ts b/apps/web/src/routes/(auth)/(dashboard)/settings/account/+page.server.ts
similarity index 100%
rename from apps/web/src/routes/(dashboard)/settings/account/+page.server.ts
rename to apps/web/src/routes/(auth)/(dashboard)/settings/account/+page.server.ts
diff --git a/apps/web/src/routes/(dashboard)/settings/account/+page.svelte b/apps/web/src/routes/(auth)/(dashboard)/settings/account/+page.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/settings/account/+page.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/settings/account/+page.svelte
diff --git a/apps/web/src/routes/(dashboard)/settings/account/account-form.svelte b/apps/web/src/routes/(auth)/(dashboard)/settings/account/account-form.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/settings/account/account-form.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/settings/account/account-form.svelte
diff --git a/apps/web/src/routes/(dashboard)/settings/appearance/+page.server.ts b/apps/web/src/routes/(auth)/(dashboard)/settings/appearance/+page.server.ts
similarity index 100%
rename from apps/web/src/routes/(dashboard)/settings/appearance/+page.server.ts
rename to apps/web/src/routes/(auth)/(dashboard)/settings/appearance/+page.server.ts
diff --git a/apps/web/src/routes/(dashboard)/settings/appearance/+page.svelte b/apps/web/src/routes/(auth)/(dashboard)/settings/appearance/+page.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/settings/appearance/+page.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/settings/appearance/+page.svelte
diff --git a/apps/web/src/routes/(dashboard)/settings/appearance/appearance-form.svelte b/apps/web/src/routes/(auth)/(dashboard)/settings/appearance/appearance-form.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/settings/appearance/appearance-form.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/settings/appearance/appearance-form.svelte
diff --git a/apps/web/src/routes/(dashboard)/settings/notifications/+page.server.ts b/apps/web/src/routes/(auth)/(dashboard)/settings/notifications/+page.server.ts
similarity index 100%
rename from apps/web/src/routes/(dashboard)/settings/notifications/+page.server.ts
rename to apps/web/src/routes/(auth)/(dashboard)/settings/notifications/+page.server.ts
diff --git a/apps/web/src/routes/(dashboard)/settings/notifications/+page.svelte b/apps/web/src/routes/(auth)/(dashboard)/settings/notifications/+page.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/settings/notifications/+page.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/settings/notifications/+page.svelte
diff --git a/apps/web/src/routes/(dashboard)/settings/notifications/notifications-form.svelte b/apps/web/src/routes/(auth)/(dashboard)/settings/notifications/notifications-form.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/settings/notifications/notifications-form.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/settings/notifications/notifications-form.svelte
diff --git a/apps/web/src/routes/(dashboard)/settings/profile-form.svelte b/apps/web/src/routes/(auth)/(dashboard)/settings/profile-form.svelte
similarity index 100%
rename from apps/web/src/routes/(dashboard)/settings/profile-form.svelte
rename to apps/web/src/routes/(auth)/(dashboard)/settings/profile-form.svelte
diff --git a/apps/web/src/routes/(auth)/login/+page.svelte b/apps/web/src/routes/(auth)/login/+page.svelte
index 38f2f42..1aa2b61 100644
--- a/apps/web/src/routes/(auth)/login/+page.svelte
+++ b/apps/web/src/routes/(auth)/login/+page.svelte
@@ -9,6 +9,22 @@
 
 	export let form;
 	let isLoading = false;
+
+	// TODO: Implement Microsoft OAuth2 login
+	// import { PUBLIC_CLIENT_PB } from '$env/static/public';
+	// import PocketBase from 'pocketbase';
+	// const pb = new PocketBase(PUBLIC_CLIENT_PB);
+	// async function msLogin() {
+	// 	try {
+	// 		await pb.collection('users').authWithOAuth2({ provider: 'microsoft' });
+	// 		const input = document.createElement('input');
+	// 		input.type = 'hidden';
+	// 		input.name = 'token';
+	// 		input.value = pb.authStore.token;
+	// 	} catch (err) {
+	// 		console.error(err);
+	// 	}
+	// }
 </script>
 
 <div class="lg:p-8">
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(components)/user-nav.svelte b/apps/web/src/routes/(dashboard)/dashboard/(components)/user-nav.svelte
deleted file mode 100644
index d54a28b..0000000
--- a/apps/web/src/routes/(dashboard)/dashboard/(components)/user-nav.svelte
+++ /dev/null
@@ -1,45 +0,0 @@
-<script lang="ts">
-	import * as Avatar from "$lib/components/ui/avatar";
-	import { Button } from "$lib/components/ui/button";
-	import * as DropdownMenu from "$lib/components/ui/dropdown-menu";
-</script>
-
-<DropdownMenu.Root>
-	<DropdownMenu.Trigger asChild let:builder>
-		<Button variant="ghost" builders={[builder]} class="relative h-8 w-8 rounded-full">
-			<Avatar.Root class="h-9 w-9">
-				<Avatar.Image src="/avatars/03.png" alt="@shadcn" />
-				<Avatar.Fallback>SC</Avatar.Fallback>
-			</Avatar.Root>
-		</Button>
-	</DropdownMenu.Trigger>
-	<DropdownMenu.Content class="w-56" align="end">
-		<DropdownMenu.Label class="font-normal">
-			<div class="flex flex-col space-y-1">
-				<p class="text-sm font-medium leading-none">shadcn</p>
-				<p class="text-xs leading-none text-muted-foreground">m@example.com</p>
-			</div>
-		</DropdownMenu.Label>
-		<DropdownMenu.Separator />
-		<DropdownMenu.Group>
-			<DropdownMenu.Item>
-				Profile
-				<DropdownMenu.Shortcut>⇧⌘P</DropdownMenu.Shortcut>
-			</DropdownMenu.Item>
-			<DropdownMenu.Item>
-				Billing
-				<DropdownMenu.Shortcut>⌘B</DropdownMenu.Shortcut>
-			</DropdownMenu.Item>
-			<DropdownMenu.Item>
-				Settings
-				<DropdownMenu.Shortcut>⌘S</DropdownMenu.Shortcut>
-			</DropdownMenu.Item>
-			<DropdownMenu.Item>New Team</DropdownMenu.Item>
-		</DropdownMenu.Group>
-		<DropdownMenu.Separator />
-		<DropdownMenu.Item>
-			Log out
-			<DropdownMenu.Shortcut>⇧⌘Q</DropdownMenu.Shortcut>
-		</DropdownMenu.Item>
-	</DropdownMenu.Content>
-</DropdownMenu.Root>
diff --git a/apps/web/src/routes/(dashboard)/dashboard/(data)/schemas.ts b/apps/web/src/routes/(dashboard)/dashboard/(data)/schemas.ts
deleted file mode 100644
index 2b76124..0000000
--- a/apps/web/src/routes/(dashboard)/dashboard/(data)/schemas.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { z } from "zod";
-
-// We're keeping a simple non-relational schema here.
-// IRL, you will have a schema for your data models.
-export const taskSchema = z.object({
-	id: z.string(),
-	title: z.string(),
-	status: z.string(),
-	label: z.string(),
-	priority: z.string()
-});
-
-export type Task = z.infer<typeof taskSchema>;
diff --git a/apps/web/src/routes/(dashboard)/dashboard/+page.svelte b/apps/web/src/routes/(dashboard)/dashboard/+page.svelte
deleted file mode 100644
index 0a3de17..0000000
--- a/apps/web/src/routes/(dashboard)/dashboard/+page.svelte
+++ /dev/null
@@ -1,18 +0,0 @@
-<script lang="ts">
-	import DataTable from "./(components)/data-table.svelte";
-	import UserNav from "./(components)/user-nav.svelte";
-	import data from "./(data)/tasks.json";
-</script>
-
-<div class="hidden h-full flex-1 flex-col space-y-8 p-8 md:flex">
-	<div class="flex items-center justify-between space-y-2">
-		<div>
-			<h2 class="text-2xl font-bold tracking-tight">Welcome back!</h2>
-			<p class="text-muted-foreground">Here's a list of your tasks for this month!</p>
-		</div>
-		<div class="flex items-center space-x-2">
-			<UserNav />
-		</div>
-	</div>
-	<DataTable {data} />
-</div>
diff --git a/apps/web/src/routes/+layout.server.ts b/apps/web/src/routes/+layout.server.ts
index 3815607..4866957 100644
--- a/apps/web/src/routes/+layout.server.ts
+++ b/apps/web/src/routes/+layout.server.ts
@@ -1,7 +1,29 @@
 import type { LayoutServerLoad } from './$types';
 
-export const load: LayoutServerLoad = (async ({ locals }: { locals: App.Locals }) => {
-	return {
-		authenticated: locals.pocketBase.authStore.isValid
-	};
-});
\ No newline at end of file
+// export function load({locals}){
+// 	console.log('base token',locals.userPb.authStore.token);
+// 	console.log('valid',locals.userPb.authStore.isValid);
+// 	if(!locals.userPb.authStore.token) throw redirect(303,'/login');
+
+// 	const user = {
+// 			firstname: locals.userPb.authStore.baseModel.firstname
+// 	}
+
+// 	return{
+// 			user
+// 	}
+// }
+
+export const load: LayoutServerLoad = async ({ locals }: { locals: App.Locals }) => {
+	if (!locals.pocketBase.authStore.token) {
+		return {
+			authenticated: locals.pocketBase.authStore.isValid,
+			user: locals.pocketBase.authStore.model?.baseModel
+		};
+	} else {
+		return {
+			authenticated: locals.pocketBase.authStore.isValid,
+			user: {}
+		};
+	}
+};
diff --git a/apps/web/src/routes/+layout.svelte b/apps/web/src/routes/+layout.svelte
index db4a939..12f0dc8 100644
--- a/apps/web/src/routes/+layout.svelte
+++ b/apps/web/src/routes/+layout.svelte
@@ -4,9 +4,9 @@
 	import { ModeWatcher } from 'mode-watcher';
 	import '../app.pcss';
 	import { fade } from 'svelte/transition';
-	import type { PageData } from './$types';
+	import type { LayoutData } from './$types';
 
-	export let data: PageData;
+	export let data: LayoutData;
 </script>
 
 <ModeWatcher />
@@ -14,7 +14,7 @@
 <Metadata />
 
 <div class="relative flex min-h-screen flex-col" id="page">
-	<SiteNavBar authenticated={data.authenticated} />
+	<SiteNavBar authenticated={data.authenticated} user={data.user} />
 	<main class="container relative mb-4 mt-12 flex-1">
 		<div in:fade={{ duration: 200, delay: 100 }} out:fade={{ duration: 100 }}>
 			<slot />