diff --git a/apps/clock/apps/web/src/app.html b/apps/clock/apps/web/src/app.html
new file mode 100644
index 000000000..77a5ff52c
--- /dev/null
+++ b/apps/clock/apps/web/src/app.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+ %sveltekit.head%
+
+
+ %sveltekit.body%
+
+
diff --git a/apps/clock/apps/web/svelte.config.js b/apps/clock/apps/web/svelte.config.js
new file mode 100644
index 000000000..4ed1e3b74
--- /dev/null
+++ b/apps/clock/apps/web/svelte.config.js
@@ -0,0 +1,15 @@
+import adapter from '@sveltejs/adapter-node';
+import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
+
+/** @type {import('@sveltejs/kit').Config} */
+const config = {
+ preprocess: vitePreprocess(),
+
+ kit: {
+ adapter: adapter({
+ out: 'build',
+ }),
+ },
+};
+
+export default config;
diff --git a/apps/clock/apps/web/tsconfig.json b/apps/clock/apps/web/tsconfig.json
new file mode 100644
index 000000000..a8f10c8e3
--- /dev/null
+++ b/apps/clock/apps/web/tsconfig.json
@@ -0,0 +1,14 @@
+{
+ "extends": "./.svelte-kit/tsconfig.json",
+ "compilerOptions": {
+ "allowJs": true,
+ "checkJs": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "resolveJsonModule": true,
+ "skipLibCheck": true,
+ "sourceMap": true,
+ "strict": true,
+ "moduleResolution": "bundler"
+ }
+}
diff --git a/apps/clock/apps/web/vite.config.ts b/apps/clock/apps/web/vite.config.ts
new file mode 100644
index 000000000..809d35412
--- /dev/null
+++ b/apps/clock/apps/web/vite.config.ts
@@ -0,0 +1,34 @@
+import { sveltekit } from '@sveltejs/kit/vite';
+import { defineConfig } from 'vite';
+
+export default defineConfig({
+ plugins: [sveltekit()],
+ server: {
+ port: 5187,
+ strictPort: true,
+ },
+ ssr: {
+ noExternal: [
+ '@manacore/shared-theme',
+ '@manacore/shared-auth-ui',
+ '@manacore/shared-branding',
+ '@manacore/shared-ui',
+ '@manacore/shared-theme-ui',
+ '@manacore/shared-feedback-types',
+ '@manacore/shared-feedback-service',
+ '@manacore/shared-feedback-ui',
+ ],
+ },
+ optimizeDeps: {
+ exclude: [
+ '@manacore/shared-theme',
+ '@manacore/shared-auth-ui',
+ '@manacore/shared-branding',
+ '@manacore/shared-ui',
+ '@manacore/shared-theme-ui',
+ '@manacore/shared-feedback-types',
+ '@manacore/shared-feedback-service',
+ '@manacore/shared-feedback-ui',
+ ],
+ },
+});