Ledge is a macOS-only Electron utility inspired by the core Dropover shelf workflow. It ships a menu-bar-first Electron shell, a React renderer, and a small Swift helper that detects shake gestures and manages bookmark-based file references.
This project currently targets Apple Silicon Macs running macOS 12 or newer. It is optimized for local development and direct-download distribution rather than the Mac App Store.
Download the latest version for macOS:
Simply download the .dmg file, open it, and drag Ledge to your Applications folder. Alternatively, you can download the .zip version for a portable execution.
- One live shelf plus recent shelf restore
- Tray, shortcut, and shake-based shelf creation
- File, folder, text, URL, and pasted-image ingest
- Quick Look, reveal/open, copy, save, share, and drag-out actions
- JSON state persistence in
~/Library/Application Support/Ledge - A Swift helper compiled from
native/DropShelfNativeAgent
corepack enable
pnpm install
pnpm devIf Electron does not finish downloading during install, run:
node node_modules/.pnpm/electron@41.1.0/node_modules/electron/install.jsBuild a branded macOS app bundle and distributables with:
pnpm distOutputs are written to dist/, including dist/mac-arm64/Ledge.app.
macOS Accessibility permissions are tied to the actual app bundle. If you want System Settings to show Ledge with its icon instead of the generic Electron dev host, launch the packaged app.
pnpm lint
pnpm test
pnpm buildThis repo includes a Remotion composition for a 36-second release demo. Preview it in Remotion Studio or render the release assets with:
pnpm video:studio
pnpm video:still
pnpm video:renderRendered assets are written to dist/release/.
The static release landing page lives in landing/ and reuses the rendered demo video.
pnpm landing:dev
pnpm landing:build
pnpm landing:previewThe production build is written to dist/landing/.
landing: static release landing page and media assetssrc/main: Electron main process, tray, windows, persistence, and native bridgesrc/preload: secure preload bridge exposed to the renderersrc/renderer: React UI for the shelf and preferences windowssrc/shared: shared schemas and IPC contractsnative/DropShelfNativeAgent: Swift helper for shake detection and bookmark resolutionrelease-video: release demo video composition and Remotion entrypointscripts: local build helpers for branding and the native agent
MIT