Stop fighting your browser. Make it work for your focus instead of against it.
Install on Chrome · Website · Report a Bug · Request a Feature · Contributing
Ashdeck turns every new tab into a calm, distraction-free focus space. Instead of opening a blank page (or your last open tab), every new tab becomes a personal dashboard with a built-in Pomodoro timer, a site blocker for distracting websites, a simple task list, and ambient focus soundscapes — all in one place, all free, all open source.
No separate app to switch to. No browser extension you forget exists. Just open a new tab, and your focus tools are already there, waiting.
| ⏱️ Pomodoro Timer | A built-in Pomodoro timer that starts the moment you open a new tab — no app-switching required to begin a focus session. |
| 🚫 Site Blocker | Block distracting websites (social media, news, anything you choose) during focus sessions, directly from your new tab. |
| 🆕 New Tab Dashboard | Replaces your browser's default new tab page with a calm, purpose-built environment designed around what you're working on right now. |
| ✅ Task List | A lightweight task list built into the dashboard — capture what you're working on without leaving your new tab. |
| 🎵 Focus Soundscapes | Ambient sound profiles to help you settle into deep work — rain, white noise, and more. |
| 🌓 Clean, Minimal UI | No clutter, no ads, no "upgrade to premium" prompts — just the tools you need to focus. |
The easiest way to use Ashdeck is to install it directly from the Chrome Web Store:
Currently available for Chrome and Chromium-based browsers (Brave, Edge, etc. via the Chrome Web Store).
Want to contribute, customize, or self-host Ashdeck? Here's how to get a local development environment running.
# 1. Clone the repository
git clone https://github.com/ashdeck/ashdeck.git
cd ashdeck
# 2. Install dependencies
npm install
# 3. Start the development server
npm run dev
The app will be available locally — open it in your browser to start developing.
npm run build to generate a production buildchrome://extensions in Chrome💡 New here? Check out our
CONTRIBUTING.mdfor a full walkthrough of the codebase and how to make your first contribution.
Ashdeck is built with a modern, lightweight frontend stack:
Ashdeck uses a file-based router (via Generouted) to keep the codebase organized in a way that should feel familiar if you've worked with Next.js.
src/
├── components/ # Reusable UI components (CustomButton, FormInput, etc.)
├── store/ # Zustand stores for global state
├── pages/ # File-based routes (Generouted)
├── hooks/ # Custom React hooks
└── ...
A few things worth knowing before you dive in:
CustomButton and FormInput are ready-made components — FormInput is designed to work with React Hook Form out of the box.store/ using Zustand — check there before adding new state management.pages/ directory.Have an idea? Open a feature request — we'd love to hear it.
Ashdeck is built in the open, and contributions of all sizes are welcome — from fixing a typo to building a whole new feature.
good first issueCONTRIBUTING.md for setup details and our PR processCODE_OF_CONDUCT.mdEvery star, issue, and pull request helps Ashdeck grow — thank you for being part of it. ⭐
Ashdeck is open source under the AGPL-3.0 License.
If Ashdeck helps you focus, consider giving it a ⭐ — it helps others find this project.