99 comments

[ 4.0 ms ] story [ 151 ms ] thread
I am so delighted to see Dillo is back and being maintained again! I was looking at it in mid 2023 and was sad to see the repo linked from the main site was dead and the general lack of activity. Off the back of this, I started looking at how to extract it and use it as a library (which I ultimately failed at, alas).

I've subsequently started a little project I'm calling Freeflow, which is intended to break down pages from 'modern' html to a subset renderable in Dillo, NetSurf, etc - essentially a standard set of xpath queries for tags like `navigation` etc, plus some tinkering with RSS and other things which display pages without styling.

Now that Dillo is alive again, I'm inclined to give writing it as a DPI a whirl.

So pleased to see this. Keeping these things alive is important.

I used Dillo when I ran OpenBSD on my laptop in 2003. Running a full desktop environment with text editor and web browser open: 28 MB RAM

I remember that Dillo did not support automatic redirects back then. They were everywhere.

I remember the late 90s QNX Floppy demo disk - OS/Desktop (well GUI), demo apps, and a web browser on a single floppy (1.44MB).
I did the same with Slackware in 2004. The browser experience wasn't the best, but I still managed to be very productive at that time.

I think there is no Windows 11 port of Dillo available so I sometime use Netsurf and Links Windows ports on Windows!

Meh - I remember full Firefox running on Gnome 2 on FreeBSD taking 64 MB in 2008. Not quite sure where we've gone so radically wrong since then.
RedHat, Fedora, FreeDesktop.
1. Do you mean Firefox on GTK taking 64MB? Or the whole desktop environment?

2. I'd say many of seeds of radical wrongness were already planted then, but it took them a while to sprout.

Whole system.
>On March of 2000, the license was changed to the GPLv3 with the permission of Raph Levien (the main developer of Gzilla/Armadillo).

This does not sound right. GPLv3 is much newer than that.

dillo-0.1.0 release notes from March 2000:

> * Changed the licence to GPL. (Raph agreed on that)

So it's probably just a typo in the article. Intended point is that the license was changed from Gzilla's private copyright notice[1] to the GPL of the time, which would probably be v2.

Nonetheless Dillo's code is also licensed under GPLv3 now.

1: https://levien.com/gzilla/Copying.txt

Oh, right! I'll fix that after coffee, thanks!

Edit: fixed!

GPL v3 is the same day as the iPhone (August 2007)
(comment deleted)
I wonder, is there a good reason to use Dillo over something like Netsurf or Ladybird nowadays? They support far more of the Web (i.e. more likely to be useful) while still being lightweight.
Ladybird is pretty far from approachable for most folks at this point but one day will hopefully be a great option in that space
Unfortunately, with it's use of Swift code, QT (which is now a bloated piece of trash since version 5) etc. It's just not tenable unless they give us a pure version without that shit
Why/how does the presence of Swift make QT a bloated piece of trash?

Genuine question. I know little of QT and nothing of its history re: Swift or version 5.

Swift means it'll require LLVM.

QT is bloated and resource intensive. Most of us don't want gigabytes of data being spent on special effects.

What is your definition of bloated? My note-taking app (with animations) binary is around 89MB[1][2]. And this is without statically linking it, using `-optimize-size` and `-ltcg` flags and running `strip` and `UXP` on it which should make it even smaller.

[1] https://rubymamistvalove.com/block-editor#8-performance

[2] https://get-notes.com/

I'm not OP, but 90Mb for a note taking app is incredibly bloated.
Exactly. People think it's okay to waste memory just because.
Well, it's not a simple note-taking app, it has a Block Editor like Notion, tho it's written in QML and C++ so it's very performant. Compare that to most Electron apps these days, and it has a way smaller binary size, way more performant, and uses much less RAM. I do aspire to trim its binary size down further, I just didn't put my attention on it yet.

It's always about choosing the best compromise, I just think Qt is a very good one . It allows you to target many platforms with a declarative UI (QML) and a compiled language (C++ or other bindings). It's a superb form of abstraction layer compared to web apps.

I'll grant you that in a world where a chat app like Discord is >400 Mb, this is on the smaller side, but that just goes to show how low our standards have become.

But then consider for a moment that the entirety of Windows 95 is ~100 Mb installed.

> but that just goes to show how low our standards have become

I totally agree. We need to do better. But I still stand with Qt being a good option. There are ways to lower Qt apps binary sizes down to 11MB[1] or 8.3MB[2].

[1] https://www.qt.io/blog/reducing-binary-size-of-qt-applicatio...

[2] https://www.kdab.com/qt-quick-without-a-gpu-i-mx6-ull/

Qt hails from the era when software was routinely measured in megabytes, so it's designed with that in mind. I suspect that it's QML specifically that contributes the most bloat in this case.
Nedit takes like 6M on a Linux machine.

Older and lighter toolkits like fltk are better.

QT I can see how it is disturbing.

Swift I can not see how it would bloat anything for end users. It’s just another compiled language.

It’s a compiled language, but in terms of runtime performance, memory usage, and binary size, it’s closer to C#/Java/Go than C/C++/Rust. Yet its compile times are among the worst of any of those.
> QT I can see how it is disturbing.

Compared to WinUI, Android, iOS, GTk3+, let alone Electron, is there even a reason to hate/fear Qt past-2010 or so?

Motif is still a thing!!!
We're proud of you! xoxoxo

:-p

(comment deleted)
Swift requires LLVM and has shit performance. I'm generally a fan of only C/C++ and Pascal/Modula stuff. All these new found languages like Rust and swift are pure trash.
Have you tried using Ladybird? The performance is unfortunately not very good. On the other hand Dillo loads pages instantly, even if most pages don't look right.
NetSurf’s UX, at least on Linux, is worse. The engine renders more but the actual browser around it feels half baked which is not the case with Dillo. Perhaps the main RISC OS version isn’t like this. The Windows version was barely functional last I tried it, it was not even what I would call pre-alpha, it was basically just a tech demo.
I actually find I am using dillo more and more these days. Thanks for maintaining it.
When I was in high school in the early 2000s, my daily driver was a 70MHz SPARCstation 5. Not a fast machine, but Dillo ran on it well.

I'm glad it's still around.

That's a pretty exotic machine for someone in high school! Where did you get it?
eBay. Came from a university originally, and I bought it with the earnings of my weekend retail job. First computer I bought with my own money.

I still have that machine.

brew install dillo, for those of you on MacOS
When I first installed GUI on Linux on my Rpi zero(with 512MB RAM), it was one of the three browsers along with midori,qute that worked without crashing.
Dillo to me is a triumph that exhibits everything great about lightweight environments on Linux. When I had almost no money and an even massively out of date for the time Pentium 2 laptop, I was able to get a version of puppy Linux running and using dillo to browse the web and it was lightning fast.

Dillo is and has always been relentlessly lightweight and in my mind no other browser compared at executing on this mission so well.

Thank you for breathing life into my impossibly old Toshiba Tecra in 2008.

What about Netsurf? Have you tried it?
Personally, I’m resisting upgrading to links from lynx.
I remember as a teenager wondering why lynx felt so slow, so I looked into the source code and discovered it was literally calling sleep() while displaying status messages, so I commented that out and made my internet experience Blazingly Fast
oh I just looked into it again for fun and noticed that indeed it defaults to sleeping at least 2 seconds every time you open a URL but this can be changed in lynx.cfg by altering these defaults:

    #INFOSECS:1
    #MESSAGESECS:2
    #ALERTSECS:3
Why would they possibly include this?
(comment deleted)
Builds character. Delayed gratification.

That and developers often conflate knowing how to construct UIs with how to design UIs. When lynx was first built, the difference in speed probably wasn’t that noticeable and people didn’t have the same expectations for responsiveness, so it didn’t matter, though times quickly changed.

I don’t know about that project specifically, but based on my experience trying to do design work in developer-controlled projects, maintainers and core users often convince themselves that some terrible user-hostile counter-intuitive UI— focused on graphically representing the API to the back end rather than using abstractions to solve the problems users actually want to solve— is the proper UI approach and if it doesn’t fit your use case, the problem is either you or your use case.

That sure brings some memories. They were calling sleep() so you would have time to read the messages in the status bar at the bottom of the screen. Back in 1995 or so I submitted patches changing the browser's inner loop to be select() based, with a queue of messages to show for a few seconds each without slowing down browsing. It took one night of hacking, and the maintainers rejected the approach as "too complicated".
I remember using Dillo years ago, I think on Damn Small Linux.
Seconded. 1.44 megabytes is not that much, DSL was very impressive on that storage budget. I wonder how small a Linux system is possible these days, even without any GUI functionality.
I love Dillo.

But I have lately been trying Dillo+ which adds some quality of life features. Have these features been incorporated into the existing Dillo?

https://github.com/crossbowerbt/dillo-plus

"A lightweight web browser based on Dillo but with many improvements, such as: support for http, https, gemini, gopher, epub..." <- It says that in the project description... isn't that weird that it claims Dillo doesn't support HTTP and HTTPS? Also,

https://dillo-browser.github.io

says it has plugins for gemini and gopher. What's the rationale for dillo-plus then? 8-\",

I think you have to install the plugins for the main Dillo build, right? Whereas Dillo+ builds them in?

And Dillo+ has a reader mode.

Anyway, I see Dillo links to these other projects - just curious if the development goes both ways.

(comment deleted)
Coincidentally, the Dillo FOSDEM talk also got accepted yesterday[1], so I'll try to make something special for the 25 year ocassion :)

[1]: https://fosdem.org/2025/schedule/event/fosdem-2025-4100-resu...

Thank you for your work.

I occasionally use this browser for many years (maybe 10+ years) for a few scenarios, including if Firefox breaks (or gets snap'ed), or when I want to test how a website may work on a non-mainstream browser, i.e. reduced JS and CSS support. With it's very low list of dependencies, it has always been the backup.

Had No idea Raph Levian was behind the origins of Dillo. What a storied career, he really built some great stuff all across the spectrum and continues to focus on interesting stuff. I really liked his posts about rope data structures when he was working on text editors.
For those curious about Dillo, you can try it right now in your browser. On the JSLinux site, the graphical VMs come with Dillo 3.0.5:

https://bellard.org/jslinux/vm.html?url=alpine-x86-xwin.cfg&...

(Warning: this will download 30+ MB)

After it starts up, right click, and then choose Browser - Dillo. There's no HTTPS support, but Google and httpbin.org work at least.

I heard you like browsers dog
Come on, with one this "word avalanchey" you've gotta go whole ~hog~ hawg and macro expand the whole thing.

"yo dawg, I heard you like browsing, so we put a browser in your browser so you can browse while you browse"

it can show a basic unbloated news site from my contry

it can show lwn.net

it can show HN

it can show old popular local forum

it can show rss feeds

it automatically blocks (does not work on) all the popular social networks

--

what else is there?

gopher and gemini plugins work great, it needs dillo mainline.

Also:

gopher://magical.fish Huge portal, with news sources

gopher://goherddit.com Reddit

gemini://gemi.dev News Waffle, able to browse Ars Technica and so over Gemini.

> gopher://goherddit.com Reddit

gopher://gopherddit.com

> it automatically blocks (does not work on) all the popular social networks

You should be head of marketing somewhere :-p

I believe we should all laud and support the admirable efforts of the new dillo developer/caretaker, Rodrigo Arias Mallo:

* Adopting a project others have abandoned

* Bringing a dysfunctional app it back to life

* Taking on the responsibility of maintenance

* And even doing the surrounding work of website setup, blogging, pushing it into the news etc.

... now that is the mark an upstanding hacker and a pillar of the community! :-)

Additionally, it's important to have alternative lightweight browsers, with different architecture and sets-of-dependencies.

So, consider chipping in and supporting the work monetarily as well:

https://liberapay.com/dillo/

it can be a larger or smaller donation; and even though it's supposedly recurring, you choose whether the renewal is automatic or manual, so you can decide whether to give once or repeatedly.

(And just to clarify - I have no association with the project or Mr. Mallo)

I misread this as 25 Years of Dildo
The levenshtein distance is appalling, and my corrupted brain did the same.
It is even funnier when you swap dillo for dildo in the comments
I use it daily on HN and lots of sites. With this UA at ~/.dillorc you can read tons of sites:

        http_user_agent="Mozilla/5.0 (PSP (PlayStation Portable); 2.00)"
Also, related, the current maintainer liked this too: An Open Street Map client/GPX tool written in FLTK:

https://github.com/shugaa/florb

I am always fascinated by the history of these sort of abandoned things. The same with loads of old sites you can find via wiby.me - lots of updates and work over decades then then it just suddenly... stops, with this fingerprint of a part of their life just hanging there.

I wonder what happened to the people, where they are now, what they're doing.

We hope you're ok Jorge.

Now that's a name I haven't heard in many years! I remember running Dillo on my HP Jornada 720 back in 2006 or 2007.