Information for developing and contributing to Chronotab.
pnpm
installed:
npm
:
dist
folder with the unpacked extension files.
chrome://extensions
.dist
folder from your project directory.chrome://extensions
to see changes in the background script or manifest, or sometimes for UI changes if hot-reloading doesn’t catch everything.
docs/
: Mintlify documentation files.
reference/
: Auto-generated JSDoc for background.js
and scheduler.js
..mdx
files for general documentation.public/
: Static assets like icons. manifest.json
refers to these.scripts/
: Build-related scripts, like postprocess-mdx.cjs
for fixing JSDoc output.src/
: Contains the core source code for the extension.
assets/
: Static assets used within the React application (e.g., react.svg
).components/
: Reusable React components.
ui/
: UI primitive components from ShadCN/ui (e.g., button.tsx
, tooltip.tsx
).Footer.jsx
: Application footer.SettingsMenu.jsx
: Component for application settings.lib/
: Utility functions and libraries, often TypeScript (e.g., utils.ts
).pages/
: React components representing different views/pages of the extension.
Dashboard.jsx
: Main view for displaying and managing schedules.ScheduleEditor.jsx
: Form for creating and editing schedules.MissedAlarmsPage.jsx
: View for managing missed schedules.utils/
: Core utility scripts.
scheduler.js
: Handles alarm creation, schedule logic, import/export.App.jsx
: Main React application component, handles routing.App.css
: Global styles for App.jsx
.background.js
: The extension’s service worker. Manages alarms, notifications, context menus, and message passing.index.css
: Global styles, including Tailwind CSS setup.main.jsx
: Entry point for the React application, renders App
into the DOM.manifest.json
: The Chrome extension manifest file. Defines permissions, background scripts, UI pages, icons, etc.package.json
: Project metadata, dependencies, and scripts.vite.config.js
: Configuration for the Vite build tool.tailwind.config.js
: Configuration for Tailwind CSS.tsconfig.json
(and variants): TypeScript configuration files.eslint.config.js
: ESLint configuration for code linting.postcss.config.js
, jsdoc.conf.json
).src/
, the background script (src/background.js
), or other relevant files.dist
folder.chrome://extensions
if necessary. For UI changes in the popup, often just re-opening the popup is enough.chrome.alarms
, chrome.storage
, chrome.notifications
, chrome.contextMenus
, chrome.tabs
.dist
folder, which can then be packaged (e.g., zipped) for submission to the Chrome Web Store.