Hacker News new | past | comments | ask | show | jobs | submit
I've been building a web browser in C from scratch, without any libraries and without AI.

This is finally approaching a usable state: navigates and renders Wikipedia, supports TLS, builds on Windows, macOS and Linux, loads PNGs and JPEGs, etc.

I'm going to opensource this once it supports most of CSS 2.2 layout and renders HN too (HN is totally blank right now, because it's a giant <table> which is still a TODO :-) )

I still don't know what to do with this. It's been a huge passion project and I'm very happy about it. I planned to create a book or video course about C programming, starting from printf("Hello world!\n") and ending up with a working browser; but the advent of AI coding agents in the past 2 years changed a lot the market for such a course.

I'm still finishing this due to stubbornness and some sunken cost fallacy effect :-)

Would love to hear feedback and ideas about such a project.

Knowing how to work without AI is valuable (what a surreal sentence to type). The first step of that is knowing it's possible. Years and years ago, when I got started programming, seeing projects like this taught me I can make anything I want, and I can always learn how to do it. There's no far-off wizard tower that must be relied upon to make everything for you.

What I'm saying is, I think this kind of thing will help the young'uns realize they can do it too. That fact is, unfortunately, far from obvious. One of the worst anecdotes I have from elementary school was of asking the librarian (who also oversaw the computer lab) who made OpenOffice, because I wanted to learn about how software works and figured that'd be a good start, and hearing her immediately dismiss the question by saying "People a lot smarter than us!" in front of the whole class. I can only hope nobody internalized that.

Also, out of curiosity from this topic being heavily on my brain lately, might I ask how you load images? Are you using libraries, or did you write any decoders yourself? Back in the day, my far less experienced self tried writing a BMP decoder, then learned about fuzzing and broke it instantly. Now that was a fun learning experience.

I recently did some playing around with having AIs test PNG decoders and it was as much of a mess as I expected. Broke a few in under an hour from casual prompting, and found weird bugs and oversights in every single one over a few days of not-so-casual prompting. (If you want to check reliability yourself, I found it eye-opening to run against a test corpus made from combining every major project's own corpus, and checking the pixel output, not just whether or not it crashed or ate all your RAM.)

loading story #50425317
> This is finally approaching a usable state: navigates and renders Wikipedia, supports TLS, builds on Windows, macOS and Linux, loads PNGs and JPEGs, etc.

So you’re implementing TLS (including RSA, elliptic curve, etc), JPEG decoding and PNG decoding from scratch? :)

loading story #50425559
You are working on an incredible project! I hope I can see your project soon :)
loading story #50425611
That's impressive, how long have you been working on it?
loading story #50424821
Where can I follow development?
loading story #50424895