A Zero-Latency Developer New Tab Extension
Replace your Chrome new tab with a blazing-fast, keyboard-first developer dashboard
Features • Screenshots • Installation • Usage • Development • Tech Stack
Main dashboard with clock, top sites, and omnibar
Optional widgets: Pomodoro, Notepad, Weather, and more
Customizable settings panel
| Widget | Description | Status |
|---|---|---|
| 🕐 Clock | Large digital clock with 12/24h format & dynamic greeting | ✅ Core |
| 🔗 Top Sites | Most visited sites from Chrome history | ✅ Core |
| ⌨️ Omnibar | Universal search/command bar (Google, GitHub, localhost) | ✅ Core |
| 🍅 Pomodoro | Focus timer with work/break intervals | ✅ Optional |
| 📝 Notepad | Quick scratchpad with auto-save | ✅ Optional |
| 🌤️ Weather | Local weather widget | ✅ Optional |
| 📰 Tech News | Latest developer news feed | ✅ Optional |
| 📊 GitHub Stats | Personal GitHub activity & stats | ✅ Optional |
Type in the command bar:
| Command | Action | Example |
|---|---|---|
g <query> |
Google Search | g svelte tutorial |
gh <query> |
GitHub Search | gh vite |
l <port> |
Open Localhost | l 3000 → localhost:3000 |
/<command> |
Custom Commands | /help |
| Direct URL | Navigate | github.com |
| Search Query | Google Search | javascript promises |
Navigation: Use ↑/↓ arrow keys to browse command history
Ctrl/Cmd + , - Open SettingsEscape - Close modals↑ / ↓ - Navigate command history in Omnibar# Clone the repository
git clone https://github.com/Zayan-Mohamed/dev-dash.git
cd dev-dash
# Install dependencies (requires pnpm)
pnpm install
# Build the extension
pnpm build
# Load in Chrome:
# 1. Open chrome://extensions
# 2. Enable "Developer mode" (top-right toggle)
# 3. Click "Load unpacked"
# 4. Select the `build/` directory
Download the latest .crx or .zip from Releases.
# Install dependencies
pnpm install
# Dev server (browser preview at http://localhost:5173)
pnpm dev
# Build for Chrome Extension
pnpm build
# Output: build/ directory (load unpacked in Chrome)
# Type checking
pnpm check
# Lint code
pnpm lint
# Format code
pnpm format
# Run unit tests
pnpm test:unit
# Run E2E tests
pnpm test:e2e
# Run all tests
pnpm test
This project uses Tailwind CSS v4 with the new CSS-first configuration approach:
tailwind.config.js - Configuration is done via CSS @import and @plugin directives@tailwindcss/vite for seamless integration| Technology | Version | Purpose |
|---|---|---|
| Svelte | 5.45.6 | UI framework with runes |
| SvelteKit | 2.49.1 | Build tooling |
| TypeScript | 5.9.3 | Type safety |
| Tailwind CSS | 4.1.17 | Styling (CSS-first v4) |
| @tailwindcss/vite | 4.1.17 | Vite integration |
| @tailwindcss/forms | 0.5.10 | Form styling plugin |
| @tailwindcss/typography | 0.5.19 | Typography plugin |
| Vite | 7.2.6 | Bundler |
| Vitest | 4.0.15 | Testing framework |
| Playwright | 1.57.0 | E2E testing |
| lucide-svelte | 0.562.0 | Tree-shakeable SVG icons |
| ESLint | 9.39.1 | Code linting |
| Prettier | 3.7.4 | Code formatting |
src/
├── lib/
│ ├── components/ # UI components (Clock, TopSites, Omnibar)
│ ├── services/ # Chrome API wrappers
│ └── utils/ # Helper functions
├── routes/
│ ├── +layout.svelte # Root layout
│ └── +page.svelte # Main dashboard
└── app.css # Global Tailwind styles
public/
├── manifest.json # Extension manifest
└── icons/ # Extension icons
build/ # Built extension (git-ignored)
Edit component classes or app.css. Current theme (GitHub Dark):
--bg-primary: #0d1117;
--bg-secondary: #161b22;
--border: #30363d;
--text-main: #c9d1d9;
--accent: #58a6ff;
In src/lib/components/Omnibar.svelte:
if (command.startsWith('npm ')) {}
const pkg = command.slice(4);
window.location.href = `https://npmjs.com/package/${pkg}`;
return;
}
In src/routes/+page.svelte:
<Clock use24Hour={true} showGreeting={false} />
topSites API wrapper with mock data fallback for developmentchrome.storage.local with localStorage fallbackAll components built with Svelte 5's new runes syntax:
$state for reactive time and $effect for interval management$props$state for history and input// Strict TypeScript configuration
- strictNullChecks: true
- noImplicitAny: true
- No any types allowed
- Interface definitions for all data structures
Example type definitions:
interface Site {
title: string;
url: string;
}
interface StorageData {
settings: {
use24Hour: boolean;
showGreeting: boolean;
githubUsername: string;
customLinks: string[];
};
}
build/ directory# Rebuild and reload
pnpm build
# Then reload extension in chrome://extensions
chrome://extensionstopSites permission is granted# Clear cache and reinstall
rm -rf node_modules .svelte-kit build
pnpm install
pnpm build
Contributions, issues, and feature requests are welcome! We love community input.
See our Contributing Guide for detailed information on:
# Fork and clone
git clone https://github.com/YOUR_USERNAME/dev-dash.git
cd dev-dash
# Install and develop
pnpm install
pnpm dev
# Before submitting
pnpm check && pnpm lint && pnpm test && pnpm build
Guidelines:
any types)$state, $derived, $effect)📖 Read the full Contributing Guide →
This project is licensed under the MIT License - see the LICENSE file for details.
Zayan Mohamed
Thanks to these wonderful people who have contributed to this project:
Give a ⭐️ if this project helped you!