A mindful new tab experience that transforms your daily browsing with inspirational affirmations, beautiful backgrounds, and productivity features.
- Development Setup
# Install dependencies
npm install
# Build the extension
npm run build
# Watch for changes during development
npm run watch- Load in Chrome
- Open Chrome and go to
chrome://extensions/ - Enable "Developer mode" in the top right
- Click "Load unpacked"
- Select the
chrome-extensiondirectory
chrome-extension/
βββ js/ # JavaScript modules
β βββ actions/ # User interaction handlers
β βββ components/ # UI components
β βββ modules/ # Core modules
β βββ services/ # Feature services
β βββ utils/ # Utility functions
βββ css/ # Stylesheets
β βββ fonts.css # Font definitions
β βββ styles.css # Main styles
β βββ premium.css # Premium feature styles
βββ fonts/ # Local font files
βββ images/ # Extension icons and assets
βββ newtab.html # New tab page
βββ manifest.json # Extension manifest
βββ build.js # Build script
- Daily Affirmations: Fresh inspirational quotes on each new tab
- Weather Widget: Current weather with detailed information
- Clock Widget: Time and date display
- Focus Mode: Distraction-free interface
- Theme Customization: Background themes and card styles
- Custom Affirmations: Create and manage personal affirmations
- Daily Reminders: Customizable notification schedules
- Cloud Sync: Backup and sync across devices
- Premium Backgrounds: Access to premium background collection
- Advanced Focus Mode: Enhanced focus features
The extension uses a custom build process:
# Production build
npm run build
# Development build with watch
npm run watchnewtab.html: The main new tab pagejs/app.js: Main application logicjs/services/: Individual feature servicesmanifest.json: Extension configuration
- Create a new service in
js/services/ - Add UI components in
js/components/ - Register in
app.js - Update manifest if needed
- API keys are managed securely through backend services
- Sensitive data is encrypted before storage
- Premium features are validated server-side
- Update version in
manifest.json - Build the extension:
npm run build- ZIP the contents:
npm run package# Run all tests
npm test
# Run specific test suite
npm test -- --suite=premiumThe extension uses a custom state management system:
// Example state update
stateManager.updateSettings({
showWeather: true,
backgroundTheme: 'nature'
});- Uses CSS variables for theming
- Supports multiple card styles (glass, solid, minimal)
- Responsive design for different screen sizes
stateManager.getSettings()
stateManager.updateSettings(newSettings)
stateManager.loadState()weatherService.update()
weatherService.getWeather()backgroundService.update()
backgroundService.saveBackground()- Open Chrome DevTools in the new tab
- Access debug console:
window.app.serviceStatus // Check service status
window.app.cleanup // Manual cleanupchrome.storagefor data persistencechrome.notificationsfor reminderschrome.permissionsfor feature access
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
MIT License - see LICENSE file for details
For issues and feature requests:
- Open an issue on GitHub
- Email: support@daily-affirmation.today # daily-affirmations