frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

Show HN: Vaev – A browser engine built from scratch (It renders google.com)

https://github.com/skift-org/vaev
89•monax•5h ago
We’ve been working on Vaev, a minimal web browser engine built from scratch. It supports HTML/XHTML, the CSS cascade, @page rules for pagination, and print-to-PDF rendering. It even handles calc(), var(), and percentage units—and yes, it renders Google.com (mostly).

This is an experimental project focused on learning and exploration. Networking is basic (http:// and file:// only), and grid layouts aren’t supported yet, but we’re making progress fast.

We’d love your thoughts and feedback.

Comments

abhisek•4h ago
What’s the long term goal of this project beyond learning? Building a browser to support the modern web is a humongous work IMHO.
monax•4h ago
The main goal is great support for static documents rendering as it's being used at the core of the paper-muncher [1] PDF rendering engine, meant to replace wkhtmltopdf at odoo. But we don't exclude general web browsing and JavaScript support at some point.

[1] https://github.com/odoo/paper-muncher

dmkolobov•3h ago
Ooh blast from the past!

At a previous company we moved off of wkhtmltopdf to a nodejs service which received static html and rendered it to pdf using phantomjs. These days you probably use puppeteer.

The trick was keeping the page context open to avoid chrome startup costs and recreating `page`. The node service would initialize a page object once with a script inside which would communicate with the server via a named Linux pipe. Then, for each request:

1. node service sends the static html to the page over the pipe

2. the page script receives the html from the pipe, inserts it into the DOM, and sends an “ack” back over the pipe

3. the node service receives the “ack” and calls the pdf rendering method on the page.

I don’t remember why we chose the pipe method: I’m sure there’s a better way to pass data to headless contexts these days.

The whole thing was super fast(~20ms) compared to WK, which took at least 30 seconds for us, and would more often than not just time out.

sshine•1h ago
Sounds like fun considering how real the problem is.
Teever•20m ago
So cool to see Odoo mentioned on HN. I've worked with it before and like it a lot.

I've made posts about it on HN before but they've never gained traction. I hope that this takes off.

You guys make neat software.

pierrelf•4h ago
Looks like skift is a hobby os like Serenity OS which Ladybird is spun out from. Maybe they intend to follow the same path?
monax•3h ago
I intend to keep Skift and Vaev together for as long as possible since everything is meant to be cross-platform. I don’t see any architectural conflict that would motivate such a change.
busymom0•4h ago
I wish one of these projects would make a browser which only renders text (so texts and links) and no additional support for media (images, videos, audio etc).

I know there is Lynx but having a non-terminal based browser which could do it would be cool.

monax•4h ago
For distraction-free reading?
dymk•3h ago
Something like Reader View in safari / firefox?
tos1•3h ago
Something like Dillo? (You can disable image rendering in Dillo).
revskill•2h ago
Then google will use text to show ads.
busymom0•2h ago
Text based ads would be less distracting.
II2II•1h ago
Remembering when Google only served text based ads.
Telemakhos•1h ago
You might be interested in Richard Stallman's method of browsing the web:

> I generally do not connect to web sites from my own machine, aside from a few sites I have some special relationship with. I usually fetch web pages from other sites by sending mail to a program (see https://git.savannah.gnu.org/git/womb/hacks.git) that fetches them, much like wget, and then mails them back to me. Then I look at them using a web browser, unless it is easy to see the text in the HTML page directly. I usually try lynx first, then a graphical browser if the page needs it. [0]

I know you wanted something other than lynx, but you could do this with EWW (Emacs web browser or any graphical browser, provided that your proxy wget dropped the images.

[0] https://www.stallman.org/stallman-computing.html

Hashex129542•44m ago
Cool idea!
khimaros•2h ago
i find myself requesting this whenever i see a new minimalist browser pop up:

it would be great to standardize alternative browsers on a consistent subset of web standards and document them so that "smolweb" enthusiasts can target that when building their websites and alternative browsers makers can target something useful without boiling the ocean

i personally prefer this approach to brand new protocols like Gemini, because it retains backward compatibility with popular browsers while offering an off ramp.

graypegg•1h ago
I think that would be really neat for small scale web publishing, but making it a subset of browser standards could be a really difficult sell to the people making browsers. While it's easier to build a browser to a subset of such a massive set of specs, the subset will drift towards a "similar but slightly incompatible standard" pretty soon after it's decided on. Following the development of Ladybird has given me an appreciation for just how often the "spec" for the web changes. (in small ways, daily.) That locks new browser implementations into a diverging standards track that would be very difficult to get off of.

I think something like a reference implementation (Ladybird, Servo or even Vaev maybe?) getting picked up as the small-web living standard feels like the best bet for me since that still lets browser projects get the big-time funding for making the big-web work in their browser too. "It's got to look good in Ladybird/Vaev/etc".

An idea: a web authoring tool built around libweb from Ladybird! (Or any other new web implementation that's easily embeddable) The implied standard-ness of whatever goes in that slot would just come for free. (Given enough people are using it!)

userbinator•1h ago
small-web living standard

The phrase "living standard" is an oxymoron, invented by the incumbents who want to pretend they're supporting standards while weaponising constant change to keep themselves incumbent.

shiomiru•33m ago
> I think something like a reference implementation (Ladybird, Servo or even Vaev maybe?) getting picked up as the small-web living standard feels like the best bet for me since that still lets browser projects get the big-time funding for making the big-web work in their browser too.

A "standard" should mean there is a clear goal to work towards to for authors and browser vendors. For example, if a browser implements CSS 2.1 (the last sanely defined CSS version), its vendor can say "we support CSS 2.1", authors who care enough can check their CSS using a validator, and users can report if a CSS 2.1 feature is implemented incorrectly.

With a living standard (e.g. HTML5), all you get is a closed circle of implementations which must add a feature before it is specified. Restricting the number of implementations to one and omitting the descriptive prose sounds even worse than the status quo.

userbinator•1h ago
The subset could just be an older version of the spec, e.g. HTML 4.01 and CSS 2.1.

(My opinion as another one who has been slowly working on my own browser engine.)

ghayes•1h ago
I feel like some of the newer standards like CSS Grid instead of tables might be the best way to go. Many HTML/CSS improvements were not just bloat but actually better standards to build on.
edoceo•24m ago
Right! Crazy fonts or cursors, not on smolweb (as another use put it) but Flex and Grid are almost necessary. There are loads of things that could be dropped (it feels like).

I just want one of these browsers to give me a proper ComboBox (text, search and drop-down thing)

poisonborz•58m ago
That's easy to specify but contains a lot of bloat and unused features. A slimmer but more modern set would be useful.
5-•33m ago
> slowly working on my own browser engine

care to tell us more?

robocat•13m ago
Pick a subset aimed directly at accessibility.

The least-needed features are often accessibility nightmares (e.g. animation - although usually not semantic).

The accessible subset could then be government standardized and used as a legal hammer against over-complex HTML sites.

For a while search engines helped because they encouraged sites to focus on being more informative (html DOCUMENTS).

I think web applications are a huge improvement over Windows applications, however dynamic HTML is a nightmare. Old school forms were usable.

(edited to improve) Disclosure: wrote a js framework and SPA mid 00's (so I've been more on the problem side than the solution side).

enos_feedler•1h ago
You mean AMP without the BS
idle_zealot•15m ago
> standardize alternative browsers on a consistent subset of web standards and document them so that "smolweb" enthusiasts can target that

Could such a standard be based on the subset of HTML/CSS acceptable in emails? Maybe with a few extra things for interactivity.

quibono•55m ago
Are you open to contributions? I would love if there was a non-chromium alternative to wkhtmltopdf!
5-•36m ago
like https://www.princexml.com/ ?
edoceo•13m ago
Yea, Prince is awesome. Not FOSS tho. I make some GPL or MIT licensed software and wish there was something as good a Prince with more open license.

France Becomes First Government to Endorse UN Open Source Principles

https://social.numerique.gouv.fr/@codegouvfr/114529954373492878
60•bzg•35m ago•6 comments

Spaced repetition systems have gotten better

https://domenic.me/fsrs/
637•domenicd•11h ago•402 comments

Show HN: I modeled the Voynich Manuscript with SBERT to test for structure

https://github.com/brianmg/voynich-nlp-analysis
255•brig90•6h ago•69 comments

Ditching Obsidian and building my own

https://amberwilliams.io/blogs/building-my-own-pkms
194•williamsss•6h ago•235 comments

$30 Homebrew Automated Blinds Opener

https://sifter.org/~simon/journal/20240718.html
150•busymom0•5h ago•60 comments

Show HN: Vaev – A browser engine built from scratch (It renders google.com)

https://github.com/skift-org/vaev
89•monax•5h ago•36 comments

Spaced Repetition Memory System

https://notes.andymatuschak.org/Spaced_repetition_memory_system
135•gasull•7h ago•12 comments

Hyper Typing

https://pscanf.com/s/341/
35•azhenley•2h ago•30 comments

K-Scale Labs: Open-source humanoid robots, built for developers

https://www.kscale.dev/
35•rbanffy•3h ago•23 comments

The Fall of Roam

https://every.to/superorganizers/the-fall-of-roam
68•ingve•4h ago•18 comments

I built a platform to find tech conferences, discounts, and ticket giveaways

https://www.tech.tickets/
14•danthebaker•2d ago•8 comments

Comparing Parallel Functional Array Languages: Programming and Performance

https://arxiv.org/abs/2505.08906
33•vok•2d ago•2 comments

Show HN: Python Simulator of David Deutsch’s "Constructor Theory of Time"

https://github.com/gvelesandro/constructor-theory-simulator
34•SandroG•2h ago•5 comments

Building my childhood dream PC

https://fabiensanglard.net/2168/index.html
124•todsacerdoti•8h ago•48 comments

Show HN: Buckaroo – Data table UI for Notebooks

https://github.com/paddymul/buckaroo
71•paddy_m•7h ago•6 comments

Emergent social conventions and collective bias in LLM populations

https://www.science.org/doi/10.1126/sciadv.adu9368
42•jbotz•6h ago•10 comments

Yahtzeeql – Yahtzee solver that's mostly SQL

https://github.com/charliemeyer/yahtzeeql
10•skadamat•3d ago•6 comments

Show HN: Hardtime.nvim – break bad habits and master Vim motions

https://github.com/m4xshen/hardtime.nvim
151•m4xshen•10h ago•58 comments

KDE is finally getting a native virtual machine manager called "Karton"

https://www.neowin.net/news/kde-is-finally-getting-a-native-virtual-machine-manager-called-karton/
11•bundie•29m ago•0 comments

How the humble chestnut traced the rise and fall of the Roman Empire

https://www.bbc.com/future/article/20250513-what-chestnuts-reveal-about-the-roman-empire
36•bookofjoe•3d ago•3 comments

In Memoriam: John L. Young, Cryptome Co-Founder

https://www.eff.org/deeplinks/2025/05/memoriam-john-l-young-cryptome-co-founder
151•coloneltcb•3d ago•15 comments

Dezyne Programming Language

https://dezyne.org/dezyne/manual/dezyne/dezyne.html
19•aulisius•1d ago•2 comments

Show HN: Stack Error – ergonomic error handling for Rust

https://github.com/gmcgoldr/stackerror
20•garrinm•4h ago•6 comments

Show HN: Model2vec-Rs – Fast Static Text Embeddings in Rust

https://github.com/MinishLab/model2vec-rs
46•Tananon•8h ago•5 comments

Mystical

https://suberic.net/~dmm/projects/mystical/README.html
345•mmphosis•1d ago•42 comments

AniSora: Open-source anime video generation model

https://komiko.app/video/AniSora
315•PaulineGar•23h ago•178 comments

Show HN: A web browser agent in your Chrome side panel

https://github.com/parsaghaffari/browserbee
122•parsabg•11h ago•55 comments

Magic Leap One Bootloader Exploit

https://github.com/EliseZeroTwo/ml1hax
61•mmastrac•3d ago•4 comments

Show HN: Racketmeter – Measure Badminton String Tension Using Sound Frequency

https://www.racketmeter.com/
32•zhacker•5h ago•12 comments

Severed Fingers and 'Wrench Attacks' Rattle the Crypto Elite

https://www.wsj.com/finance/currencies/crypto-industry-robberies-attacks-32c2867a
3•spenvo•7m ago•0 comments