Any web app in your Mac menubar.
Click the tray icon, use the app, click away — it disappears.
You want quick access to Notion, Gmail, or any web app without switching windows or cluttering your dock. Niftyman puts web apps in your macOS menubar as tray icons. Click to open, click away to hide. Run multiple instances side by side, each with its own icon and shortcut.
- 🎯 Menubar-native — web apps live in the tray, not the dock
- 🔢 Multiple instances — run several apps simultaneously, each with its own tray icon
- 😀 Emoji icons — pick from 100+ emoji for each tray icon
- ⌨️ Global shortcuts — toggle any instance with a hotkey
- 📱 Mobile rendering — switch user agent to render mobile versions
- 📌 Quick toggles — always-on-top, resizable, movable per instance
- 🔄 Auto-updates — background update checks with one-click install
| Runtime | Electron 23 |
| Language | TypeScript |
| UI | Vue 3 (settings), Photon CSS |
| Build | Webpack 5, electron-builder |
| Storage | electron-store (local persistence) |
# Install dependencies (x64 for Apple Silicon)
npm install --arch=x64
# Build and run
npm run build && electron dist/main.jsnpm run build # Dev build
npm run build:prod # Production build
npm run make-dmg # Create DMG installer
npm run pack:prod # Package for distribution
npm run debug # Build + run with Chrome DevTools inspectorEach instance is an Electron BrowserWindow anchored to a tray icon. Clicking the tray icon toggles the window. Right-clicking opens a context menu with quick toggles (always-on-top, resizable, movable) and a link to preferences. Settings are persisted per-instance via electron-store, so window size, position, and URL survive restarts.
The settings page is a Vue 3 component rendered in a separate frameless window, with an emoji picker for tray icons and a shortcut configurator for global hotkeys.
Personal tool for quick menubar access to web apps. Feel free to fork and adapt.