Skip to content

Latest commit

 

History

95 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bro Computer

A simple & minimal web browser.

Bro Computer strips browsing down to what matters: the page. One quiet row of chrome, no clutter, no noise — just a fast, focused window onto the web that gets out of your way the moment a page loads. Built on CEF.

Download

Download the latest DMG from the latest release — it is rebuilt automatically on every commit to main. The release always holds exactly one DMG: the current build.

First launch: builds are ad-hoc signed (not notarized), so macOS blocks the first open with a "cannot be verified" warning. To get past it once:

  • macOS 15 (Sequoia) and later: open the app, dismiss the warning, then go to System Settings → Privacy & Security, scroll down, and click Open Anyway. (The old right-click → Open shortcut no longer works on these versions.)
  • Any version, from the terminal: run xattr -dr com.apple.quarantine "/Applications/Bro Computer.app" (adjust the path to wherever you moved it), then open it normally.

After the first successful open it launches like any other app.

Requires macOS 12.0+ on Apple Silicon.

Updates

Bro Computer updates itself. It checks once a day while running, and you can ask it to look now with Bro Computer → Check for Updates…. Updates download the full app in the background and install in place.

The menu item is greyed out until the maintainer sets up signing keys — see Enabling updates at the end. Builds without keys simply never check for updates.

Building from source

Prerequisites

  • macOS 12.0+ on Apple Silicon
  • Xcode Command Line Tools (xcode-select --install — full Xcode not needed)
  • CMake 3.24+ and Ninja (brew install cmake ninja)
  • A network connection for the first configure — CMake downloads Sparkle (~15 MB)

1. Get CEF

Download the exact CEF binary distribution pinned in CMakeLists.txt (one-time, ~250 MB):

CEF_VERSION=$(sed -n 's/^set(BRO_CEF_VERSION "\(.*\)")$/\1/p' CMakeLists.txt)
mkdir -p cef-project/third_party/cef
cd cef-project/third_party/cef
curl -L -o cef.tar.bz2 "https://cef-builds.spotifycdn.com/$(printf '%s' "$CEF_VERSION" | sed 's/+/%2B/g').tar.bz2"
tar xjf cef.tar.bz2 && rm cef.tar.bz2
cd ../../..

2. Build and run

cmake -G Ninja -B build
cmake --build build
open "build/Bro Computer.app"

Enabling updates (maintainer, one time)

Updates are signed, and the signing key is deliberately not in this repo. These steps need a completed build above — the Sparkle tools come from it.

  1. Generate a key pair with the copy of Sparkle the build already downloaded:

    ./build/_deps/sparkle-src/bin/generate_keys

    It stores the private key in your login Keychain and prints the public key.

  2. Export the private key and add it to the repository as a secret named SPARKLE_PRIVATE_KEY (Settings → Secrets and variables → Actions):

    ./build/_deps/sparkle-src/bin/generate_keys -x sparkle-private-key.txt

    Delete that file once the secret is saved.

  3. Only now, paste the printed public key into SUPublicEDKey in src/mac/Info.plist.in, replacing REPLACE_WITH_SPARKLE_PUBLIC_KEY, and commit it.

Do steps 2 and 3 in that order. A build carrying a real public key starts checking for updates, so if the secret isn't there yet those apps poll a feed that was never published. CI fails the build if it sees that combination rather than shipping it, but the ordering avoids the failure entirely.

Keep the key safe — Sparkle can only rotate it with a Developer ID signed build, so losing it means shipped apps can no longer be updated.

About

The web browser

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages