Is Raycast Really Worth Replacing Spotlight and Alfred?

Is Raycast Really Worth Replacing Spotlight and Alfred?

Beyond Application Switching: The Command Palette as an OS

A keystroke audit over six weeks in autumn 2023 tracked every invocation of the launcher hotkey on a primary work machine running macOS Ventura. The methodology required classifying each hotkey press by a strict binary outcome. Did the task finish inside the command palette, or did it end with an application window opening? Across 43 working days, the machine logged roughly 90 to 140 hotkey invocations per day during standard design and Swift/TypeScript development sessions. A clear pattern emerged from this data. When the palette bucket outgrows the window bucket in a multi-week keystroke log, the tool has stopped being a launcher and the comparison criteria have to change with it.

The reclassification threshold was crossed in the fifth week of the audit. Clipboard history and window management commands were folded into the same palette instead of living in two separate menu-bar utilities. In this workflow, Raycast functions as a localized, keyboard-driven operating system rather than a traditional application launcher. Spotlight retained one category outright in that log. Locating a file by partial filename inside a deeply nested project directory remains unmatched natively. It returned results without any index-priming step, typically inside somewhere around 200 milliseconds of the second character being typed.

Publishing Friction in Modern Extension Ecosystems

Evaluating the developer extension ecosystem requires looking at the transition from traditional bash and Python scripts to modern web technologies. To judge publishing friction honestly, the same tool was built twice. A companion utility that reads local task and project data out of a self-hosted project-management client and surfaces it in the palette started life as an Alfred workflow. It relied on a keyword trigger, a Python script filter emitting XML, and an AppleScript step for the write-back. That version worked initially. The write-back path broke twice due to system-permission tightening on macOS.

The Alfred version consisted of a script filter, a run-script action, an AppleScript bridge, and a workflow plist. The TypeScript rewrite reduced this entire structure to a package manifest plus two .tsx files under 300 lines combined. Store review for the rebuilt extension took four business days from pull request to publication. The review process included a single round of feedback on the empty-state copy and an unused API scope in the manifest.

Extension state persistence moved from writing a JSON cache into the workflow's own data folder to the launcher's built-in local storage API. This architectural shift removed the manual cache-invalidation code entirely. Dependency updates on the TypeScript extension have needed attention roughly twice a year since publication in early 2024. Standardized UI components also keep extension interfaces consistent compared with fragmented workflow interfaces.

Measuring Memory Footprint and Execution Latency

Comparing the memory footprint and execution latency of Raycast against Alfred's highly optimized C-based core reveals distinct architectural trade-offs. Latency was measured by screen-recording at 60 frames per second, then counting frames from hotkey press to the first painted row. Ten runs were executed per condition, discarding the first two runs after a reboot to let the index warm.

On an M1 MacBook Air with 16 GB of RAM, Alfred's summed resident footprint sat in the 60–95 MB band at idle. The Node-backed launcher's summed footprint sat in the 150–230 MB band. This memory usage rose when two or more extensions kept background refresh intervals active. Palette paint time after hotkey press measured 2–4 frames (roughly 33–66 milliseconds) for both tools on the M1 machine. The divergence appeared only after the first keystroke. A script-filter workflow that shells out to Python pays its startup cost on every keystroke, while a bundled TypeScript extension pays it once per session. The Python-backed Alfred script filter paid an interpreter startup cost of roughly 180–400 milliseconds per invocation.

The performance argument here holds for Apple Silicon machines with 16 GB or more; on the tested 2015 Intel hardware with 8 GB, the Node runtime cost is visible enough that the older, C-cored launcher remains the defensible choice regardless of how attractive the extension catalogue looks. Latency figures were taken with FileVault enabled and Spotlight indexing complete.

On a 2015 dual-core Intel MacBook Pro with 8 GB of RAM, the same TypeScript extension's first result row took 700 milliseconds to over a second to appear from cold. The equivalent Alfred workflow stayed under half a second. Disabling background refresh on three network-backed extensions returned about 40 MB of the footprint and removed a periodic spinner that had been appearing in the root search. Spotlight's deep OS-level integration provides a baseline for native performance expectations.

Visual Consistency and Cognitive Load in the Palette

Raycast adheres strictly to Apple-inspired UI/UX design patterns, specifically its use of native typography, spacing, and visual hierarchy. The interface assessment was done by screenshotting the root palette and eleven third-party extensions at 2x. Row heights, icon boxes, and leading were measured in a design tool rather than trusting the impression of consistency. The question being answered was narrow. Can a user predict where the next actionable element sits before the frame paints?

Image showing ui comparison

Measured list rows held a consistent 40-pixel height at 1x with 16-pixel horizontal padding and a 20-pixel icon box. This remained unchanged across every extension that used the framework's stock list component. The action menu is bound to a single modifier chord (⌘K) in every extension inspected. The discovery path for any unfamiliar extension is one keystroke deep rather than a menu hunt.

Alfred workflows in the same sample rendered in four visually distinct ways depending on whether the author used the default result list, a Text View, a custom HTML output, or a native dialog spawned by an external script. Visual consistency across third-party extensions reduces cognitive load during rapid context switching. Trackpad reliance during a full working day of palette use fell to interactions with the target application itself. Navigation within the palette—filtering, arrowing, secondary actions, escaping back one level—never required the pointer.

Migrating Muscle Memory to a React-Inspired Architecture

The migration order was chosen by reversing the audit from the opening section. The highest-frequency commands moved first, so the muscle memory payoff arrived before the tedium did. Clipboard history and window management went across in the first sitting because they accounted for the largest share of daily invocations. File-search habits were deliberately left on Spotlight for the first fortnight.

Keyboard Binding Conflicts

The default ⌘Space binding must be released from Spotlight in Keyboard Settings before the new launcher will accept it. Leaving both bound produces an intermittent race where Spotlight wins on cold boot.

Two focused sittings of roughly 90 minutes each covered hotkey remapping, clipboard history import, snippet migration, and disabling the now-redundant menu-bar utilities. Snippet and clipboard history carried over from a plain-text export. Keyword-triggered scripts did not, and each ported script needed its trigger word re-registered by hand. Users whose entire launcher usage is filename search, arithmetic, and unit conversion gain nothing measurable from the switch. Those three paths are already resolved by the system tool without a third-party process resident in memory.

For web designers, UI/UX professionals, and Mac developers who rely on modern API integrations, Raycast provides a unified extension ecosystem. In those workflows, it replaces Alfred and sets a practical baseline for keyboard-driven work.

Comments

No comments so far.

Join the Discussion

Cookie settings