Skip to content

Building from Source

Myke edited this page Oct 25, 2026 · 2 revisions

Building from Source

Requirements

Run

git clone https://github.com/MykePalma/OrbitBrowser.git
cd OrbitBrowser
dotnet run -c Release

Make the downloadable build

dotnet publish Lite.csproj -c Release -r win-x64 --self-contained true -o publish/Orbit

Zip the publish/Orbit folder. --self-contained true bundles the .NET runtime so users don't need to install it; use false for a smaller build that needs the .NET 8 Desktop Runtime.

Project layout

File Contents
MainWindow.xaml / .xaml.cs The window: tab strip, toolbar, bookmarks bar, find bar, split view, shortcuts
MainWindow.Web.cs, Wv.cs Connects each tab's WebView2 to the window: navigation, downloads, context menu, permissions, dialogs
Extensions.cs, MainWindow.Ext.cs Chrome extensions: install, toolbar icons, pop-ups, Web Store bar
Models.cs Data store (bookmarks, history, settings), the Tab model, URL handling, the new-tab page
BookmarkUi.cs, Dialogs.cs Bookmark manager and dialog, history, downloads and settings windows
Icons.cs Material Design icons for menus
SelfTest.cs The automated end-to-end test
Assets/ The Orbit logo (SVG, PNG and multi-size ICO)
docs/ The project website (GitHub Pages)

Built with Microsoft Edge WebView2 and MaterialDesignInXamlToolkit.

Publishing a release

Orbit's updater reads the repository's latest GitHub release. To ship an update: raise <Version> in Lite.csproj, publish and zip as above, name the zip exactly Orbit-win-x64.zip, then create a release whose tag is v plus the version (for example v1.0.2) with that zip attached. GitHub adds the SHA-256 digest automatically, which the updater requires.

Self-test

dotnet run -c Release -- --selftest

Opens real windows and drives them: navigation, tabs, bookmarks and folders, find, zoom, downloads, split view, tab tear-off, private windows and more, against a small local web server. It uses a throwaway profile in %TEMP%\Orbit-selftest and writes selftest.log there. Each line starts with PASS or FAIL.

Clone this wiki locally