Languages: English | 简体中文
Turn websites into focused macOS apps, launched from the notch.
Browser tabs bury your everyday tools. Safari's Add to Dock is convenient, but each saved web app adds another icon to your Dock.
NeatWebApp gives your sites a separate notch launcher and lets mostly hidden windows tuck themselves into a floating glass activity Dock. Every app has its own website data, so separate instances can keep work and personal accounts apart.
![]() Notch launcher · your sites, one hover away |
![]() Activity Dock · collapsed sites stay within reach |
| Feature | What it does |
|---|---|
| Notch launcher | Hover the MacBook notch—or the top-center hot zone on other displays—to reveal your sites. The launcher lives outside the system Dock; no account or cloud sync is required. |
| Edge-tucking activity Dock | Drag a window mostly off-screen and it tucks into the floating glass activity Dock. Click its icon to bring the same window back; right-click to quit that web app. |
| Separate website data | Each app instance has a persistent, isolated WebKit data store for cookies and website storage. Zoom and bookmarks are also saved per app instance. |
| Per-site element hiding | Hide distracting banners, sidebars, or navigation elements on individual websites without changing other apps. |
| Create an app from a bookmark | Right-click an in-app bookmark and choose Add WebApp. The new app gets its own data store and a one-time copy of the current app's cookies. |
| Native WebKit essentials | Clean WebKit windows, Finder download management, file uploads, camera and microphone support, and automatic Sparkle updates. |
Like Safari's web apps, running NeatWebApp sites can use their own site icons in the macOS Dock and ⌘Tab. NeatWebApp's distinction is the separate notch launcher, automatic edge tucking, built-in element hiding, and bookmark-based app creation—not a claim that Safari lacks website-data isolation.
Requires macOS 15 or later; Apple silicon and Intel are supported. Sites and their data stay on your Mac. NeatWebApp has no account, cloud sync, or telemetry service.
brew install --cask x0c/tap/neatwebappDownload the latest signed and notarized NeatWebApp-x.y.z.dmg from Releases and drag NeatWebApp to Applications.
Automatic updates are built in via Sparkle. You can also choose Check for Updates… from the menu bar or General settings.
Build from source
Requires Xcode 16.2+ and XcodeGen:
git clone https://github.com/NeatMacApps/NeatWebApp.git
cd NeatWebApp
xcodegen generate
xcodebuild -project NeatWebApp.xcodeproj -scheme NeatWebApp -configuration Release \
-destination 'platform=macOS' -derivedDataPath build/DerivedData build
rm -rf /Applications/NeatWebApp.app
ditto build/DerivedData/Build/Products/Release/NeatWebApp.app /Applications/NeatWebApp.app
open /Applications/NeatWebApp.app- Reveal the launcher: Move your pointer to the MacBook notch, or to the top-center edge on a display without a notch.
- Add a site: Click + in the launcher, then enter a name and URL in Web Apps.
- Tuck and restore: Drag a window mostly off-screen to park it in the activity Dock. Click its icon to restore the same window, or right-click to quit that web app.
- Create a separate instance: Open Bookmarks from a window's More Actions menu. Right-click a bookmark and choose Add WebApp to create another app with a copy of the current cookies.
The bookmark action copies cookies only—not localStorage, IndexedDB, or passkeys. The two apps keep separate data afterward, and some websites may still ask you to sign in.
| Project | Description |
|---|---|
| NeatEditor | Fast-launching, distraction-free native plain-text editor with multi-tab autosave. |
| NeatPaste | Local-first clipboard history in the menu bar, one shortcut away. |
| HandySwitch & MacResourceMonitor | Everyday menu-bar toggles and a one-click CPU process monitor. |
| Corral | Run Claude Code, Codex, and Cursor side by side, with native Mac and iPhone clients. |

