Transform your new tab experience with a customizable, widget-powered dashboard that puts everything you need at your fingertips.
π― Features β’ π Quick Start β’ π οΈ Development β’ π¦ Installation
π¨ Beautiful & Modern - Sleek glass-morphism design with customizable backgrounds
β‘ Lightning Fast - Built with React 18 and optimized for performance
π§© Modular Widgets - Drag, drop, and customize your perfect workspace
π Multi-Language - Full internationalization support (English, Afrikaans, Spanish)
π Privacy First - All data stored locally, no tracking, no servers
π‘οΈ Manifest V3 - Future-proof with the latest Chrome Extension standards
π Live Clock | β‘ Quick Actions | π¨ Background Manager |
---|---|---|
Multi-timezone support Custom formats Real-time updates |
Favorite website shortcuts Custom icons & labels One-click navigation |
Upload custom backgrounds 5MB file support Preview & restore |
π GitHub Integration | π Website Counter | π Language Settings |
---|---|---|
PR monitoring PAT authentication Real-time updates |
Visit tracking Favicon display Statistics & trends |
Multi-language UI Instant switching Persistent preferences |
π Sprint Number | ||
---|---|---|
Track sprint cycles Auto-calculate sprint dates Multiple sprint tracking |
- π React 18 - Modern functional components with hooks
- π TypeScript - Type-safe development experience
- β‘ Webpack - Optimized build system with hot reload
- π¨ CSS Modules - Component-scoped styling
- π react-i18next - Full internationalization support
- π ESLint & Prettier - Code quality and formatting
# π¦ Install dependencies
npm install
# π¨ Build for development
npm run dev
# ποΈ Build for production
npm run build
# π§Ή Format code
npm run format
- π Download - Clone or download this repository
- π¨ Build - Run
npm install && npm run build
- π Load - Open
chrome://extensions/
, enable Developer mode - π Install - Click "Load unpacked" and select the
dist
folder - π Enjoy - Open a new tab and customize your dashboard!
π Project Structure
quantum-tab/
βββ π src/
β βββ π¨ newtab/ # New tab dashboard
β β βββ index.tsx # Main dashboard entry
β β βββ NewTab.tsx # Dashboard component
β β βββ newtab.css # Dashboard styles
β βββ π§© components/ # Reusable widgets
β β βββ ClockWidget.tsx # Live clock widget
β β βββ GitHubWidget.tsx # GitHub integration
β β βββ LocaleWidget.tsx # Language settings
β β βββ ... # More widgets
β βββ π locales/ # Internationalization
β β βββ en.json # English translations
β β βββ af.json # Afrikaans translations
β β βββ es.json # Spanish translations
β βββ π§ background/ # Extension background
β βββ π content/ # Content scripts
β βββ π― types/ # TypeScript definitions
β βββ π οΈ utils/ # Utility functions
βββ πΌοΈ public/icons/ # Extension icons
βββ π manifest.json # Extension manifest
βββ βοΈ webpack.config.js # Build configuration
- π’ Node.js (v16 or later)
- π¦ npm or yarn
- π Chrome Browser (for testing)
π» Local Development Setup
# 1οΈβ£ Clone the repository
git clone https://github.com/YourUsername/quantum-tab.git
cd quantum-tab
# 2οΈβ£ Install dependencies
npm install
# 3οΈβ£ Start development server
npm run dev
# 4οΈβ£ Open Chrome Extensions
# Navigate to: chrome://extensions/
# 5οΈβ£ Load the extension
# Enable "Developer mode" β Click "Load unpacked" β Select /dist folder
- π₯ Start dev mode -
npm run dev
(watches for file changes) - πΎ Make changes - Edit any source file
- π Auto-rebuild - Webpack automatically rebuilds
- π Reload extension - Click reload button in
chrome://extensions/
- β¨ Test changes - Open new tab to see updates
Command | Description | Usage |
---|---|---|
ποΈ npm run build |
Production build with optimization | Release builds |
π¨ npm run dev |
Development build with file watching | Active development |
π§Ή npm run lint |
ESLint code quality checks | Code review |
β¨ npm run format |
Prettier code formatting | Code cleanup |
π npm run type-check |
TypeScript type validation | Type safety |
π npm run docs:sync-wiki-local |
Generate wiki documentation locally | Local wiki updates |
π npm run docs:sync-wiki |
Generate wiki documentation for CI/CD | Production wiki sync |
Comprehensive widget documentation automatically generated from source code
Quantum Tab uses an automated documentation generation system that converts widget definitions into comprehensive GitHub Wiki pages. All widget documentation is centralized in docs/WIDGET_DOCUMENTATION.md
and automatically synced to the GitHub Wiki.
π Documentation Workflow
graph LR
A[Widget Components] --> B[docs/WIDGET_DOCUMENTATION.md]
B --> C[npm run docs:sync-wiki-local]
C --> D[wiki/ folder]
D --> E[Git Push]
E --> F[GitHub Wiki]
- π Source Documentation - Widget properties and descriptions are maintained in
docs/WIDGET_DOCUMENTATION.md
- π§ Local Generation - Run
npm run docs:sync-wiki-local
to generate individual wiki pages - π Wiki Folder - Generated markdown files are saved to the local
wiki/
folder - π Git Sync - The
wiki/
folder is a Git submodule linked to the GitHub Wiki repository - π Publish - Commit and push changes to automatically update the live GitHub Wiki
π οΈ Local Wiki Development
# 1οΈβ£ Clone the wiki repository
cd wiki
git clone https://github.com/Ruandv/Quantum-Tab.wiki.git .
# 2οΈβ£ Generate wiki pages from documentation
cd ..
npm run docs:sync-wiki-local
# 3οΈβ£ Review generated files
cd wiki
ls -la # See all generated .md files
# 4οΈβ£ Commit and push changes
git add .
git commit -m "docs: update widget documentation"
git push origin master
The documentation generator automatically creates:
- Home.md - Main wiki landing page with widget index
- [widget-name].md - Individual pages for each widget
- timezones.md - Time zone reference for LiveClock widget
π Adding New Widget Documentation
When creating a new widget, add its documentation to docs/WIDGET_DOCUMENTATION.md
:
### YourNewWidget
- **Description**: Brief description of what the widget does
- **Usage**: How and when to use this widget
#### Properties
- **propertyName**: Description of the property and its purpose
- **anotherProperty**: Another property description
Then regenerate the wiki:
npm run docs:sync-wiki-local
cd wiki
git add .
git commit -m "docs: add YourNewWidget documentation"
git push
π€ CI/CD Documentation Pipeline
The repository includes a GitHub Action workflow (.github/workflows/sync-docs-to-wiki.yml
) that automatically:
- Triggers on push to the main branch when
docs/WIDGET_DOCUMENTATION.md
changes - Generates wiki pages using
npm run docs:sync-wiki
- Publishes to Wiki using the official GitHub Wiki Action
- Updates live docs without manual intervention
npm run docs:sync-wiki
This command generates wiki files in wiki/
folder for CI/CD deployment.
β
Keep it updated - Update docs/WIDGET_DOCUMENTATION.md
when modifying widget properties
β
Test locally - Use npm run docs:sync-wiki-local
to preview changes before pushing
β
Follow structure - Maintain consistent formatting for all widget documentation
β
Include examples - Add usage examples and common configuration patterns
β
Alphabetical properties - List widget properties in alphabetical order
- π View Live Wiki
- π Documentation Source
- π Wiki Sync Workflow
π Live Clock Widget
Perfect for global teams and timezone management
β¨ Features:
- π Multiple timezone support with auto-detection
- π Customizable date and time formats
- π Real-time updates every second
- π Resizable widget dimensions
- π¨ Beautiful glass-morphism design
Multiple Instances: β Yes (track multiple timezones)
β‘ Quick Actions Widget
One-click access to your favorite websites
β¨ Features:
- π― Customizable emoji icons and labels
- π Direct website navigation
- ποΈ Drag-and-drop management
- β Unlimited button creation
- π Smart URL validation
Multiple Instances: β
Yes (create themed button groups)
Default Buttons: GitHub, MyBroadband
π¨ Background Manager Widget
Personalize your dashboard with custom backgrounds
β¨ Features:
- π Upload custom images (PNG, JPG, JPEG, GIF, WebP)
- ποΈ Live preview before applying
- π Restore default gradient anytime
- ποΈ Remove backgrounds with one click
- π 5MB file size limit
Multiple Instances: β No (single background manager)
π GitHub Integration Widget
Monitor your repositories and pull requests
β¨ Features:
- π Real-time pull request monitoring
- π PAT token authentication for private repos
- π·οΈ PR status indicators (Open, Merged, Closed, Draft)
- π Auto-refresh pull request data
- π Repository information display
Multiple Instances: β
Yes (monitor multiple repositories)
Requirements: GitHub Personal Access Token for private repos
π Website Counter Widget
Track your browsing habits and favorite sites
β¨ Features:
- π Automatic visit counting
- π Favicon display for visual identification
- π Last visited timestamps
- βοΈ Customizable website list
- π Visit statistics and trends
Multiple Instances: β No (single counter tracks all sites)
Default Sites: Google, GitHub, MyBroadband
π Language Settings Widget
Multi-language interface support
β¨ Features:
- π Support for multiple languages
- β‘ Instant language switching (no restart needed)
- πΎ Persistent locale preferences in Chrome storage
- π³οΈ Visual language indicators with flag emojis
- π Read-only display when widget is locked
Multiple Instances: β No (single language settings)
Available Languages: English , Afrikaans
, Spanish
π Sprint Number Widget
Track your agile sprint cycles with automatic calculations
β¨ Features:
- π Configure sprint start date, length, and current sprint number
- π Automatic sprint calculation based on elapsed days
- π Display current sprint number with start/end dates
- β° Live updates at midnight each day
- π― Configurable sprint length (default: 14 days)
- π Perfect for agile teams and project management
Multiple Instances: β
Yes (track multiple sprint schedules)
Configuration: Set once when adding widget
Calculation: (Today - StartDate) / SprintLength + BaseSprint
π Extension Infrastructure
- Modern React-based UI with glass-morphism design
- Drag-and-drop widget management system
- Full internationalization (i18n) support
- Responsive design with CSS modules
- Real-time data synchronization
- Extension lifecycle event handling
- Message passing between components
- Badge updates and extension state management
- Website visit tracking for analytics
- Persistent data management
- Seamless page interaction capabilities
- Website visit detection and counting
- Communication bridge between web pages and extension
- Privacy-focused data collection
π Chrome APIs Integration
API | Usage | Purpose |
---|---|---|
π chrome.tabs |
Tab management & queries | New tab functionality |
πΎ chrome.storage |
Data persistence | Widget configs & user data |
π¨ chrome.runtime |
Message passing | Component communication |
π― chrome.action |
Icon & badge management | Extension UI updates |
π File System APIs | Image upload processing | Background customization |
π i18n APIs | Multi-language support | Localization framework |
Help make Quantum Tab even better!
- π¨ Code Style - Follow ESLint and Prettier configurations
- π Commit Messages - Use meaningful, descriptive commits
- π§ͺ Testing - Test all changes before submitting
- π Documentation - Update docs for new features
- π Code Review - All PRs require review
Made with β€οΈ for the Chrome Extension community
Report Bug β’ Request Feature β’ Contribute