Your internet is a place, not just a list of tabs.
WebBurrow turns your bookmarks into a cozy, low-poly 3D world. Every site you care about becomes a physical object you can walk up to, sitting on a desk, shelf, or wall in a room you actually enjoy hanging out in. No accounts, no backend, no telemetry, no cloud β everything lives on your machine.
- Why WebBurrow
- What's inside
- Rooms
- Get it running
- Controls
- Quick Access
- Navigator
- Integrations & privacy
- Architecture
- Verify / test
- Known limitations
- Docs
Browser bookmark bars are flat, forgettable, and infinite. WebBurrow gives your everyday sites spatial memory instead. Your GitHub goes on a desk in the Developer Studio, your media sites hang on the wall in the Media Lounge, your favorites sit wherever you put them. It sounds playful because it is, but underneath it's a fully local, privacy-conscious app: no arbitrary iframing of third-party sites, no required cloud storage, and every integration is opt-in and off by default.
| π 3 room templates | Home Den, Developer Studio, and Media Lounge, each customizable into your own layout |
| π§± 13 site archetypes | Beveled, readable objects with restrained live-state cues and context-aware placement (floor, desk, shelf, media-wall, wall) |
| β¨οΈ Full keyboard control | Manage sites and rooms, import bookmarks, build collections, favorite, and place things β no mouse required |
| π Quick Access | One search bar across local sites, rooms, collections, sessions, integrations, feeds, notifications, and the open web |
| π§ Navigator | A visual command center for discovering, grouping, and managing sites, rooms, collections, sessions, integrations, and browser actions |
| π Optional integrations | GitHub (public), Open-Meteo weather, iCalendar, and text-only RSS/Atom β each with offline cache fallback |
| πͺ Mini Burrow | A compact 2D view of your layout with up to 4 configurable cards |
| π§ Browser companion | Session-only tab workspaces via a minimal-permission Chrome/Edge/Brave extension |
| ποΈ Adaptive session layouts | Solo stations for a few tabs, labeled banks for medium sets, dense instanced racks for big transfers |
| π Windows tray + deep links | Optional tray icon, validated webburrow:// routes, hardened native-messaging bridge |
| π Ambient by default, muted by default | Generated UI/ambience audio, plus onboarding you can dismiss whenever |
Grab the latest WebBurrow-Setup-x64.exe from the Releases page, or build it yourself:
npm install
npm run desktop:distBuilding locally produces release/WebBurrow-Setup-1.0.0-x64.exe. Either way, the installer:
- installs per-user with a chosen install directory
- creates Desktop and Start Menu shortcuts
- registers the
webburrow://protocol - registers the native-host origin for Chrome, Edge, and Brave
β οΈ The installer is unsigned, so Windows SmartScreen will warn you on first run.
Prefer an unpacked build instead? Run npm run desktop:pack. Full details: docs/building.md.
Requires Node.js β₯ 22.13.
This minimum is intentional: the lockfile records Node 22.13.0 as the first supported Node 22 release for jsdom and @napi-rs/wasm-runtime in the test/build toolchain.
npm install
npm run devOpen the local URL the dev server prints. Sites always open in your system browser or an isolated tab.
npm run extension:buildLoad browser-extension/dist as an unpacked extension in Chrome, Edge, or Brave.
It can send the active page, selected tabs, a window, or a tab group into a temporary workspace, or preview bookmarks for import. Permissions scale with what you actually use: activeTab, storage, and nativeMessaging are required; tabs, tabGroups, and bookmarks only get requested when their feature is invoked. Temporary workspaces never touch IndexedDB or exports and vanish on next launch unless you explicitly promote them. Setup and full permission model: docs/browser-companion.md.
| Input | Action |
|---|---|
W A S D |
Move |
| Mouse | Look around |
Shift |
Gentle sprint |
Space |
Jump |
E |
Use a nearby object or live surface |
Ctrl+K or / |
Quick Access |
T |
Burrow Tray |
Alt+1 / 2 / 3 |
Travel to starter rooms |
Home |
Return to a safe spawn |
Esc |
Release mouse look / close dialog |
In Edit mode, switch between Camera mode and Place objects. Drag to orbit, scroll to zoom, and use W A S D plus Q / E to fly through the room while arranging objects.
No first-person skills required: every workflow is also reachable through accessible HTML controls, and small windows automatically fall back to a companion layout instead of forcing mouse-look gameplay.
Ctrl+K (or /) opens a single search surface. Local fuzzy matches always come first.
| Prefix | Searches |
|---|---|
> command |
Commands |
g query |
|
yt query |
YouTube |
gh query |
GitHub |
Plain unmatched text shows an explicit web-search result. It never launches automatically. DuckDuckGo is the default provider.
Navigator is the expansive companion to Quick Access. Search and fuzzy-filter sites, rooms, collections, temporary browser sessions, integrations, commands, and web-search targets in one visual workspace. Result cards expose local artwork and favicons, while the details pane supports opening or focusing a real browser tab, favorites, editing, collection and room organization, and object-type changes. Drag site cards into rooms or collections, group results by domain or context, and create temporary research workspaces that open their links in your system browser. Navigator is local-first and never embeds or renders third-party websites.
Every integration below ships disabled, and none fires a network request before you explicitly configure it.
| Integration | Behavior |
|---|---|
| GitHub | Public repo data only, up to 5 repos, ETag-aware, hourly refresh |
| Weather | Manually selected city β device location is never requested |
| Calendar | Local .ics, local events, or chosen HTTPS feeds with bounded recurrence expansion |
| RSS/Atom | Text-only headlines and safe article URLs; remote HTML is never rendered |
Whether a web request succeeds still depends on the source's own CORS policy. On desktop, WebBurrow uses hardened, adapter-specific HTTPS calls with public-address pinning, redirect revalidation, MIME/size limits, and timeouts. Favicon fetches are same-origin, capped at 64 KiB, downsized to at most 64Γ64, cached locally, and excluded from exports.
Full boundary model: PRIVACY_AND_SECURITY.md.
- Stack: React 19, TypeScript, Vite/vinext, React Three Fiber, Drei, Rapier, Zustand, Dexie, Zod, ICAL.js
- A kinematic capsule controller drives frame-by-frame movement directly, without pushing player telemetry through React
- A single shared room-layout registry powers world colliders, placement/mounting, migrations, and the 2D Mini Burrow
- Dexie schema 5 preserves older data; layout version 3 remaps legacy placements into the authored room footprints. Portable exports stay on
ConfigEnvelope V3 - Integration adapters return serializable search/tray/world view models; an isolated runtime handles cache-first refresh with stale fallback
- Electron runs a sandboxed renderer with context isolation, a purpose-built preload, and discriminated privileged operations
npm run lint
npm run typecheck
npm test
npm run build
npm run desktop:build
npm run extension:buildThe desktop smoke harness checks startup, preload availability, renderer console errors, key release views, performance counters, and hidden-window suspension. The suite currently runs 70 fixture-driven, integration, store, persistence, contract, and Testing Library checks. Full release process: docs/building.md.






