LinkScape
July 22, 2026 ยท View on GitHub
LinkScape is a WinUI 3 desktop browser-style app built on .NET 10 and Microsoft UI Reactor.
It includes a tabbed browsing shell, a command center rail, persistent history and favorites, configurable search providers, and customizable acrylic backdrop presets.
Tech Stack
- .NET 10
- WinUI 3 / Windows App SDK
- Microsoft UI Reactor
- SQLite via
Microsoft.Data.Sqlite - MSIX packaging
Current Features
- Tab-based browsing UI
- Compact and expanded left tab rail
- Command Center sections for:
- History
- Recent
- Most Visited
- Favorites
- Settings
- Chat placeholder
- Persistent tab state
- Persistent browsing history
- Persistent favorites store
- Search provider selection
- Acrylic backdrop gradient presets
- Windows desktop packaging via MSIX
Design System and UX Direction
LinkScape follows a desktop-first, keyboard-friendly design with a focus on clarity, speed, and personalization.
Design Principles
- Clarity first: obvious layout, clear labels, predictable behavior
- Low friction: common actions should require minimal clicks
- Progressive density: compact when needed, detailed when expanded
- Accessible by default: keyboard navigation, readable contrast, semantic labels
- Personal feel: themes and acrylic presets without sacrificing usability
Visual Language
- Spacing scale: 4, 8, 12, 16, 24, 32
- Corner radii:
- Small controls: 6
- Cards/panels: 10
- Dialogs/surfaces: 12
- Elevation:
- Flat by default
- Subtle emphasis for hover/active states
- Typography:
- Title
- Section heading
- Body
- Caption/meta
Theming
LinkScape supports customizable acrylic presets. Recommended built-in preset names:
- Midnight
- Frost
- Sunset
- Graphite
Each theme should define:
- Primary accent
- Surface/background layers
- Border/subtle separator color
- High-contrast text and icon color pairs
Information Architecture
Left rail organization:
- Top: Tab actions and quick creation
- Middle: Main destinations (History, Top Sites, Favorites, etc.)
- Bottom: Settings and app-level actions
Command Center sections should be clearly differentiated by purpose:
- History: chronological navigation history
- Top Sites: most visited destinations
- Recent Tabs: recently active tab sessions
- Favorites: saved/pinned destinations
Interaction Guidelines
- Always show visible keyboard focus
- Keep icon-only controls labeled with tooltips and accessible names
- Preserve discoverability in compact rail mode
- Use non-blocking loading for heavy sections (history/favorites)
- Prefer immediate shell rendering and async data hydration
Accessibility Baseline
- Ensure contrast compliance for text over acrylic backdrops
- Provide semantic names for tab close buttons, section headers, and rail controls
- Maintain comfortable hit targets for pointer and touch
- Support full keyboard traversal for primary navigation paths
UX Roadmap (Design)
Now
- Improve hierarchy and spacing consistency
- Clarify section naming (
History,Top Sites,Recent Tabs,Favorites) - Add polished empty states
Next
- Add first-run hints/onboarding cards
- Add tab pinning and quick tab recovery affordances
- Improve compact rail discoverability
Later
- Advanced tab grouping
- Optional command customization
- Expanded personalization presets
Project Structure
src/LinkScape/
App.cs App bootstrap and backdrop configuration
TabViewPage.cs Main browser page and state management
Browser/
Components/BrowserChrome.cs Rail, title bar, command center UI
State/BrowserTabActions.cs Tab state transformations
Models/BrowserTab.cs Tab model
Services/
TabPersistenceService.cs Tab persistence
HistoryPersistenceService.cs History database
FavoritesService.cs Favorites database
SettingsService.cs Settings database
BrowserHistoryImportService.cs Imported browser history support
Assets/
Help/
helper.html Linker help page (local MCP/AI assistant reference)
Package.appxmanifest MSIX manifest
Requirements
- Windows 10/11
- Visual Studio 2026 Insiders or a compatible .NET / Windows App SDK toolchain
- Windows App SDK workload / WinUI desktop development support
Getting Started
- Open
LinkScapeSolution.slnxin Visual Studio. - Restore packages.
- Build and run the
src/LinkScape/LinkScape.csprojproject.
Or from a terminal:
dotnet build .\src\LinkScape\LinkScape.csproj
Local Data
The app creates local SQLite databases at runtime for:
- tabs
- history
- favorites
- settings
Current database files used by the app:
tabs.dbhistory.dbfavorites.dbsettings.db
Debugging MCP and Linker Chat
MCP and Linker chat diagnostics are written to:
%USERPROFILE%\Documents\LinkScapeCache\mcp-debug.log
Stream the log live in PowerShell with:
Get-Content "$env:USERPROFILE\Documents\LinkScapeCache\mcp-debug.log" -Tail 100 -Wait
If LINKSCAPE_CACHE_DIRECTORY is set, use that directory instead of Documents\LinkScapeCache.
Signing and Open Source Safety
Private signing assets are intentionally not stored in the repository.
- MSIX signing is disabled by default in
LinkScape.csproj - A sample local signing file is provided at:
src/LinkScape/LinkScape.Signing.props.example
- To sign locally or in CI:
- Copy that file to
src/LinkScape/LinkScape.Signing.props - Fill in your local PFX path or certificate thumbprint
- Keep that file out of source control
- Copy that file to
Ignored signing assets include:
*.pfx*.snksrc/LinkScape/LinkScape.Signing.props
Notes
- The project targets
net10.0-windows10.0.26100.0 - Packaging is configured for MSIX
- Some UI and accessibility cleanup items may still remain as ongoing work
License
This project is licensed under the GNU General Public License v3.0.
See the LICENSE file for the full text.