Build from Source β
Building Nothing Browser from source requires Qt6 WebEngine, CMake, and a C++ compiler. Java 17 is needed for the YouTube bridge.
Requirements β
| Platform | Dependencies |
|---|---|
| Linux | Qt6 WebEngine, CMake 3.20+, GCC or Clang, Java 17 |
| macOS | Qt6 via Homebrew, CMake, Xcode CLT, Java 17 |
| Windows | Qt6 via Qt Installer, CMake, Visual Studio 2022, Java 17 |
All Platforms β
| Requirement | Version | Notes |
|---|---|---|
| Git | Latest | For cloning repository |
| CMake | 3.20+ | Build system |
| C++ Compiler | C++17 compatible | GCC, Clang, or MSVC |
| Java | 17+ | For YouTube tab (NewPipe Extractor) |
| Qt6 | 6.4+ | Qt6 WebEngine required |
Linux (Debian/Ubuntu) β
Install Dependencies β
bash
# Install Qt6 WebEngine and build tools
sudo apt update
sudo apt install -y \
build-essential \
cmake \
git \
openjdk-17-jre \
qt6-base-dev \
qt6-webengine-dev \
libqt6webenginewidgets6 \
libqt6webenginecore6
# Verify installations
cmake --version
qmake6 --version
java -versionClone and Build β
bash
# Clone repository
git clone https://github.com/BunElysiaReact/nothing-browser.git
cd nothing-browser
# Create build directory
mkdir build && cd build
# Configure with CMake
cmake .. -DCMAKE_BUILD_TYPE=Release
# Build (use all CPU cores)
make -j$(nproc)
# Run the built browser
./nothing-browserInstall System-Wide β
bash
# After building, install
sudo make install
# Run from anywhere
nothing-browserBuild .deb Package β
bash
# From the build directory
cpack -G DEB
# Install the generated .deb
sudo dpkg -i nothing-browser_*.debArch Linux β
Install Dependencies β
bash
# Install required packages
sudo pacman -S \
base-devel \
cmake \
git \
java-openjdk \
qt6-base \
qt6-webengine
# Or install via AUR (recommended)
yay -S nothing-browserBuild from Source β
bash
# Clone and build
git clone https://github.com/BunElysiaReact/nothing-browser.git
cd nothing-browser
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
./nothing-browserFedora β
Install Dependencies β
bash
sudo dnf install \
cmake \
gcc-c++ \
git \
java-17-openjdk \
qt6-qtbase-devel \
qt6-qtwebengine-develBuild β
bash
git clone https://github.com/BunElysiaReact/nothing-browser.git
cd nothing-browser
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
./nothing-browsermacOS β
Install Dependencies β
bash
# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Qt6 and dependencies
brew install qt6 cmake git openjdk@17
# Add Qt6 to PATH
echo 'export PATH="/opt/homebrew/opt/qt6/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
# Verify
cmake --version
qmake --version
java -versionBuild β
bash
# Clone repository
git clone https://github.com/BunElysiaReact/nothing-browser.git
cd nothing-browser
# Create build directory
mkdir build && cd build
# Configure (adjust Qt path if needed)
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH=/opt/homebrew/opt/qt6
# Build
make -j$(sysctl -n hw.ncpu)
# Run
./nothing-browser.app/Contents/MacOS/nothing-browserCreate .dmg Package β
bash
# From build directory
cpack -G DragNDrop
# Output: nothing-browser-*.dmgWindows β
Install Dependencies β
Visual Studio 2022
- Download from visualstudio.microsoft.com
- Select "Desktop development with C++" workload
Qt6
- Download from qt.io/download
- Select "Qt 6.4.0 or later"
- Select "MSVC 2022 64-bit" component
- Select "Qt WebEngine" component
CMake
- Download from cmake.org/download
- Add to system PATH during installation
Java 17
- Download from adoptium.net
- Add to system PATH
Git
- Download from git-scm.com
Set Environment Variables β
powershell
# Set Qt6 path (adjust to your installation)
setx QT6_DIR "C:\Qt\6.4.0\msvc2022_64"
# Verify
echo %QT6_DIR%Build Using Script β
Open Developer Command Prompt for VS 2022:
batch
# Clone repository
git clone https://github.com/BunElysiaReact/nothing-browser.git
cd nothing-browser
# Edit QT6_DIR in scripts/build-windows.bat first
scripts\build-windows.batManual Build β
batch
# Create build directory
mkdir build
cd build
# Configure
cmake .. -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Release
# Build
cmake --build . --config Release --parallel
# Run
.\Release\nothing-browser.exeProject Structure β
nothing-browser/
βββ core/
β βββ app/ # MainWindow
β βββ engine/ # Interceptor, FingerprintSpoofer,
β β # NetworkCapture, UpdateChecker
β βββ tabs/ # BrowserTab, DevToolsPanel,
β β # NewsTab, YoutubeTab, PluginsTab
β βββ main.cpp
βββ assets/
β βββ icons/logo.svg
βββ scripts/
β βββ build-deb.sh # Build .deb package
β βββ build-windows.bat # Build Windows release
β βββ PKGBUILD # Arch AUR package
βββ .github/
β βββ workflows/
β βββ build-release.yml # CI β builds all platforms on tag push
βββ install.sh # Universal Linux installer
βββ CMakeLists.txtBuild Options β
CMake Options β
| Option | Default | Description |
|---|---|---|
-DCMAKE_BUILD_TYPE | Debug | Release for production |
-DBUILD_TESTS | ON | Build unit tests |
-DBUILD_NEWPIPE_BRIDGE | ON | Build YouTube Java bridge |
-DUSE_SYSTEM_QT | ON | Use system Qt6 libraries |
Example with Options β
bash
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TESTS=OFF \
-DBUILD_NEWPIPE_BRIDGE=ONCI / Releasing β
Nothing Browser uses GitHub Actions to build all platforms automatically on tag push.
Ship a New Release β
bash
git add .
git commit -m "feat: what changed"
git push
git tag v0.1.4
git push origin v0.1.4What Happens β
GitHub Actions automatically:
| Step | Output |
|---|---|
| 1. Builds Linux | .deb, .tar.gz |
| 2. Builds Windows | .zip, .exe |
| 3. Builds macOS | .dmg, .tar.gz |
| 4. Creates Release | All assets attached |
| 5. Updates "latest" | Tag points to new release |
Update Notification β
The in-app update checker picks up the new release within 6 hours.
Troubleshooting β
Qt6 WebEngine Not Found β
Error:
Could not find a package configuration file provided by "Qt6WebEngine"Solution:
bash
# Debian/Ubuntu
sudo apt install qt6-webengine-dev
# Arch
sudo pacman -S qt6-webengine
# macOS
brew install qt6
# Windows
# Ensure Qt6 path is set correctlyJava Not Found β
Error:
Could not find Java. Please install Java 17+Solution:
bash
# Debian/Ubuntu
sudo apt install openjdk-17-jre
# Arch
sudo pacman -S jdk17-openjdk
# macOS
brew install openjdk@17
# Windows
# Download from adoptium.net and add to PATHCMake Version Too Old β
Error:
CMake 3.20 or higher is requiredSolution:
bash
# Debian/Ubuntu
sudo apt remove cmake
wget -qO- "https://github.com/Kitware/CMake/releases/download/v3.27.0/cmake-3.27.0-linux-x86_64.tar.gz" | sudo tar --strip-components=1 -xz -C /usr/local
# macOS
brew upgrade cmake
# Windows
# Download latest from cmake.orgBuild Fails with Missing Headers β
Solution:
bash
# Clean build directory and retry
rm -rf build
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make clean
make -j$(nproc)Docker Build β
dockerfile
# Dockerfile
FROM ubuntu:22.04
RUN apt update && apt install -y \
build-essential \
cmake \
git \
openjdk-17-jre \
qt6-base-dev \
qt6-webengine-dev \
libgl1-mesa-dev \
libxkbcommon-x11-0
WORKDIR /app
RUN git clone https://github.com/BunElysiaReact/nothing-browser.git .
RUN mkdir build && cd build && \
cmake .. -DCMAKE_BUILD_TYPE=Release && \
make -j$(nproc)
CMD ["./build/nothing-browser"]bash
# Build Docker image
docker build -t nothing-browser .
# Run
docker run --rm -it nothing-browserBuild Outputs β
| Platform | Binary Location | Package Output |
|---|---|---|
| Linux | build/nothing-browser | .deb or .tar.gz |
| macOS | build/nothing-browser.app | .dmg or .tar.gz |
| Windows | build/Release/nothing-browser.exe | .zip or .exe |
Next Steps β
- Limitations β Known limitations
- TLS Fingerprint Report β Technical deep dive
- Contributing β How to contribute
Nothing Ecosystem Β· Ernest Tech House Β· Kenya Β· 2026