Files
claudedo-online/nuxt.config.ts
Claude 02adfd0dbe feat: installable PWA (manifest, icons, minimal service worker)
- public/manifest.webmanifest with any + maskable icons (192/512)
- generated inbox-glyph icons in app palette, apple-touch-icon
- minimal no-cache service worker for installability; registered via client plugin
- head: manifest/icon links, mobile-web-app-capable

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 08:00:54 +00:00

45 lines
2.1 KiB
TypeScript

export default defineNuxtConfig({
compatibilityDate: "2026-06-10",
ssr: false,
devtools: { enabled: false },
// Single-user private inbox: no SSR/SEO needs; SPA so @kuns/zitadel-auth runs in-browser.
runtimeConfig: {
// Server-only config is read directly from process.env at runtime (see server/utils),
// so it is NOT declared here (Nuxt only overrides runtimeConfig via the NUXT_ prefix).
public: {
zitadelIssuer: process.env.NUXT_PUBLIC_ZITADEL_ISSUER || "https://auth.kuns.dev",
zitadelClientId: process.env.NUXT_PUBLIC_ZITADEL_CLIENT_ID || "",
// Optional: Zitadel project id. When set, the login requests the project-audience
// scope so the access token's `aud` includes the project id (robust API validation).
zitadelProjectId: process.env.NUXT_PUBLIC_ZITADEL_PROJECT_ID || "",
},
},
app: {
head: {
title: "ClaudeDo Inbox",
htmlAttrs: { lang: "en" },
meta: [
{ name: "viewport", content: "width=device-width, initial-scale=1, viewport-fit=cover" },
{ name: "color-scheme", content: "light dark" },
{ name: "theme-color", media: "(prefers-color-scheme: light)", content: "#f4f1ea" },
{ name: "theme-color", media: "(prefers-color-scheme: dark)", content: "#181410" },
{ name: "mobile-web-app-capable", content: "yes" },
{ name: "apple-mobile-web-app-capable", content: "yes" },
{ name: "apple-mobile-web-app-status-bar-style", content: "default" },
{ name: "apple-mobile-web-app-title", content: "ClaudeDo" },
],
link: [
{ rel: "manifest", href: "/manifest.webmanifest" },
{ rel: "apple-touch-icon", href: "/icons/apple-touch-icon.png" },
{ rel: "icon", type: "image/png", sizes: "192x192", href: "/icons/icon-192.png" },
{ rel: "preconnect", href: "https://fonts.googleapis.com" },
{ rel: "preconnect", href: "https://fonts.gstatic.com", crossorigin: "" },
{
rel: "stylesheet",
href: "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600&family=Spline+Sans:wght@400;500;600&display=swap",
},
],
},
},
});