Skip to content

Kestrel 1.1 — UI polish + Chrome comparison

Choose a tag to compare

@bishosilwal bishosilwal released this 23 Aug 07:29
· 2 commits to main since this release

Measured against Chrome 151 on an M1 / 8 GB / macOS 26.5, same five pages, same order:

Kestrel Chrome 151
Memory — 5 tabs loaded 701 MB 1.93 GB 2.8x less
Memory — same 5 tabs after idling 236 MB 1.91 GB 8.3x less
Memory — idle, one empty tab 28 MB 403 MB 14.2x less
Processes for those 5 tabs 8 47 5.9x fewer
CPU while idling on those 5 tabs 0.04% of a core 0.11% of a core 3.1x less
Cold launch to a window 0.34 s 0.41 s 1.2x faster
App on disk 904 KB 2.0 GB ~2,400x smaller

Chrome ran on a throwaway profile with no extensions, which makes it lighter than
a typical real-world Chrome — the comparison is deliberately generous to it. Reproduce
it yourself with ./tools/bench.sh; the README table is generated from the raw data.

UI and UX

  • Toolbar icons were being drawn at the default thin weight in secondary grey, which
    read as disabled. They are now semibold in full contrast, with a rounded hover
    highlight, and dim only when genuinely unavailable.
  • The address bar is a proper capsule with a security glyph (lock, warning or search)
    and an accent border when focused. Escape reverts what you typed.
  • Native vibrant toolbar background with a hairline above the page.
  • The memory readout is a soft capsule rather than loose grey text.
  • Right-click a tab for reload, duplicate, copy address, put to sleep, close, and
    close others. Double-click empty tab-strip space for a new tab.
  • ⌘⇧T reopens the tab you just closed.
  • Opening several links at once now focuses the first, like Safari and Chrome, rather
    than whichever was last in the list.

Fixes

  • Clicking a link while Kestrel was closed could open two windows.
  • window.open / target=_blank now builds its web view from the configuration
    WebKit supplies, as WebKit requires.
  • The memory readout no longer calls proc_pidpath on every process on the machine
    on every tick.

Install

Download Kestrel.zip, unzip, drag to /Applications, then:

xattr -dr com.apple.quarantine /Applications/Kestrel.app
open /Applications/Kestrel.app

That step is required: Kestrel is ad-hoc signed and not notarized, so macOS
quarantines it as an internet download and claims it is damaged. Apple Silicon,
macOS 13+.