Skip to content

Latest commit

 

History

History
156 lines (117 loc) · 4.36 KB

File metadata and controls

156 lines (117 loc) · 4.36 KB

BROWZ Product Brief

This document started as the original MVP PRD for BROWZ.

Today, BROWZ has moved beyond that first bootstrap phase, so this file now serves two purposes:

  • preserve the original product intent
  • restate the current project direction in a way that matches the repo today

For day-to-day implementation priorities, use these as the primary sources of truth:

  • README.md
  • TODO.md
  • docs/core-web-80-compliance-matrix.md
  • docs/core-web-80-benchmarks.md

1. Original product idea

Build an open-source desktop browser MVP that proves a custom, non-Chromium browser architecture can:

  • load simple documents
  • render a small but meaningful subset of HTML/CSS
  • execute browser-hosted JavaScript through V8
  • remain understandable and hackable by contributors

The product was never meant to be a standards-complete browser. It was meant to be a believable small browser engine and shell.


2. Current product direction

BROWZ is now optimizing for Core Web 80 rather than just a toy MVP.

That means the near-term goal is no longer merely:

  • "open a local HTML file"

It is now:

  • load a representative set of real sites
  • render them with believable structure and usable controls
  • survive moderate JS without collapsing
  • improve via benchmarks and regression tests rather than anecdotes

Representative targets include:

  • Google homepage/search shell
  • Wikipedia pages and portal layouts
  • docs/article sites
  • news/link-list pages
  • simple forms/search flows
  • moderately JS-enhanced public pages

3. Target user

Primary user:

  • a developer-hacker who wants a browser codebase they can understand, modify, test, and extend

Secondary user:

  • a contributor who wants to experiment with browser subsystems without needing Chromium-scale complexity

4. Product shape

Still true

  • Linux desktop only
  • C++20
  • custom browser shell and renderer
  • optional embedded V8 runtime
  • understandable modular codebase
  • no Chromium/CEF/WebKit/QtWebEngine
  • no pretense of full browser completeness

Expanded since the original MVP

BROWZ now includes or targets:

  • file://, http://, and https:// navigation
  • external stylesheets/scripts/images
  • a growing browser-oriented DOM/runtime surface
  • benchmark-driven progress tracking
  • live-site compatibility work
  • visual debug/checkout workflows for real pages

5. Current success criteria

BROWZ is succeeding when a contributor can:

  • clone the repo and build it from the README
  • launch either V8-off or V8-on variants predictably
  • open local examples and real public pages
  • interact with links, search/forms, and basic text inputs
  • use benchmark/docs/test artifacts to understand what broke and why

A representative page should:

  • load without hanging
  • render recognizable structure
  • show readable text and major images/icons where supported
  • expose usable controls/hit targets
  • survive moderate JS enhancement

6. Current non-goals

Still out of scope for now:

  • full standards compliance
  • consumer-browser polish
  • multiprocess isolation as a first priority
  • GPU acceleration
  • tabs as the main immediate blocker
  • full storage/cookie/history/security parity
  • browser-extension parity
  • media/DRM parity
  • complete CSS Grid / full modern CSS parity

7. Technical posture

Core stack:

  • C++20
  • Lexbor for HTML parsing
  • custom style/layout/paint pipeline
  • SDL2 windowing in desktop mode
  • software rendering
  • optional V8 runtime
  • libcurl-backed HTTP(S) loading when available

Engineering posture:

  • benchmark-driven development
  • regression tests for real compatibility wins
  • general browser behavior improvements over site-specific hacks
  • keep abstractions explicit and modest

8. Near-term priorities

Highest-value work right now:

  1. layout/render fidelity on representative real pages
  2. control/input/search usability
  3. positioned layout, sizing, and overflow correctness
  4. background-image/sprite and image fidelity improvements
  5. broader Core Web 80 regression coverage

9. Definition of done for the current phase

BROWZ is not trying to be "done" as a browser.

For the current phase, it is "done enough" when:

  • the benchmark/docs workflow is coherent
  • major regressions are caught by tests or benchmark runs
  • the project can browse a meaningful slice of ordinary public pages
  • contributors can understand the system and extend it without fighting hidden complexity