TUI-style browser extension startpage built with Svelte 5.
npm run dev— dev server at localhost:5173npm run build/npm run build:chrome— production builds todist/firefoxordist/chromenpm test— vitest
- Write clean, minimal code
- Follow Svelte 5 conventions, do not use deprecated Svelte features
- Make sure styling is consistent with existing styles
- Build manifest post-processing:
scripts/build-manifest.jsruns after each build via a custom Vite plugin. It mutatespublic/manifest.jsonper browser — removingoauth2/identityfor Firefox, removingbrowser_specific_settingsfor Chrome.CLIENT_ENVenv var selects dev/prod OAuth client ID. - Theme injection at build time: The
injectThemeScript()Vite plugin embeds theme CSS custom properties directly into HTML to prevent FOUC. Theme definitions live insrc/lib/themes.js. - Google Tasks is Chrome-only: Depends on
chrome.identity.getAuthToken()which has no Firefox equivalent. Gated bysrc/lib/browser-detect.js.