BuildABrowser is a project aiming to build a browser and its rendering engine in Java, and then (eventually) document it such that others can rebuild it for themselves.
Jump to Screenshots | View on YouTube
The Linux/Window builds require a JVM (Java 24 or higher).
The browser uses the Skija painter by default. To use Java2D, pass the -gbe java2d flag.
You can embed the BuildABrowser renderer in your Swing application or non-mobile Android Jetpack Compose application!
Learn more about BuildABrowser. Initialize your repository.
Open a window with text loaded from a file or server, using a URL passed via the command-line.
Get a feel for the browser DOM, creating a basic tree that will suffice for some basic HTML parsing.
Each of the screenshots below was rendered by BuildABrowser Browser.
Not that it's useful in any meaningful way without JS, but I thought it looked cool.
There are only two columns because DA uses JS to reflow the layout which the browser does not support. In theory, you can also copy the 'td' cookie from another browser, which overrides layout.
GitHub has recently been making me login... which is not ideal considering the browser is not hardened for security...