Hacker News new | past | comments | ask | show | jobs | submit login
25 Years of Dillo (dillo-browser.github.io)
284 points by todsacerdoti 45 days ago | hide | past | favorite | 94 comments



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.


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


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".


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?


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.


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!


Links -g as well


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.


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.


RedHat, Fedora, FreeDesktop.


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"


*yo dawg


you’re the man now dog


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 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.


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.


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.


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)


Or, as I read it in my head "Dil...oh"


Good to know I'm not alone :)


I tried to use Dillo on some news websites (like bbc.co.uk or rte.ie) and they didn't render very well, which is not so much a criticism of Dillo but of the fact that even websites who main job is to display simple textual content and maybe some images have managed to complicate their UIs enough that lightweight browsers struggle to display them.

A common problem seems to be pages that display different content snippets in containers side-by-side, rather than in a more traditional list format (which Dillo seems to handle better). Another one is hidden menus (behind a hamburger button) which many lightweight browsers display by default, in list format, so that at the top of every page there is a long list down the left hand side (or in the centre) that you have to scroll past to see the actual content. I have this problem with elinks as well.

HN looks great though!


I honestly don't throw this phase out there lightly so please don't roll your eyes, but this would be an ideal application for AI. "See all this neatly formatted text? Yeah do your deep learning thing and make this ugly text look like this neatly formatted text. Bonus if you make all the adds look like blurry blobs but always show images that are part of the article"


I could see that working if news sites were considerate enough to ship little enough text to fit in the LLM context window. Does anybody support 10M+ tokens yet?


I didn't mean it as a "Hey GPT: format the following text neatly", rather it could learn to produce a static program that takes ugly looking pages and formats them to look professionally published. It wouldn't really be operating on text, but instead changing font size, column width, and other css type variables.


That latter thing is a much harder cat and mouse game though. Is the proposal to use the rendered output as feedback to help the LLM converge faster than the people already making de-shittified UIs? If you can't use the actual content of the page to assist the AI then that seems like a very hard problem.


It would train AI to recognize an article's text, and discard the ads. Then format the text neatly, like a newspaper used to be.


How do you deal with the text being distributed mixed in many JS files, half only being delivered over the wire after you click a button, "text" being displayed as a nested div to generate some sort of formatting (especially when the HTML for such a monstrosity doesn't fit in a single context window), ...?


you could just render it as if it were being shown to a person. Thats where the fuzzy logic of AI would come it. It could be trained to identify what an article looks like, based on the layout and size and other inferences (that it figures out, hence AI).

For a while now, I've thought of the idea of outsourcing this to a 3rd world sweatshop. Basically pay people to click on the scummiest ad-loaded pages all day, saving copies of just the content, and re-hosting it as, say, web 1.0 content, text and pictures, nothing more. Whether they used copy-paste, or just "save page" and then pipe it through another program, who cares. just extract the content and host it as web 1.0 that would load super fast but maybe have the same font or formatting as the original.


>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)


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.


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.


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?


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

You should be head of marketing somewhere :-p


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.


Don't forget gopher://gopher.floodgap.com

Also, there's the Floodgap Public Gopher Proxy:

http://gopher.floodgap.com/gopher/


> gopher://goherddit.com Reddit

gopher://gopherddit.com


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 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/


Nedit takes like 6M on a Linux machine.

Older and lighter toolkits like fltk are better.


I'm not OP, but 90Mb for a note taking app is incredibly bloated.


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.


Exactly. People think it's okay to waste memory just because.


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.


> 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


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.


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.


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.


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.


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.


Did you know that you can run Dillo on MS-DOS? https://archive.org/details/msdos_dillodos

Dillo can be used as a very lightweight site-specific browser (SSB) like Wikipedia or HTML help files.

I am curious what was the development like between 2002 and 2007. Does anybody have a commit history for that period?


Dillo's spotty (commit) history reminds me of GrafX2's (http://grafx2.chez.com) history. An editor inspired from a famous Amiga editor, that has been in development on and off throughout its life. Pixel art to the core, and very opinionated editor, but it's been a few years since I last touched it.


I actually find I am using dillo more and more these days. Thanks for maintaining it.


dillo makes me remember how snappy and light web ~browsing could be

would only takes a few features (ergonomics and hooks) to be a daily driver, especially for non entertainment usage


With absolutely no disrespect intended to Dillo, it should probably be clearer that the project was mothballed for around half of the “25 years”!


On a 25 MHz m68040 running modern NetBSD, dillo runs well, all things considered. I think many people would be surprised how usable it is.


In college (2002-2008), my computer was often 'whatever the hell I could get my hands on'. My laptop died, so I wound up borrowing my parent's 500mhz pentium with 64 mb of ram as my 'college machine'. Shockingly, it could actually run firefox at the time.

Anyway, this meant that I didn't have a computer when I visited them. The only one left in the house was a 486 with 24 mb of ram. What's an enterprising coder to do? Did I really want to leave my cs homework until I returned? No! So I put slackware on it, and let me tell you dillo ran wonderfully, at least well enough to pull up javadocs. I'd edit my src files locally, ssh into my uni's unix lab, transfer the src files there and compile. This workflow was surprisingly productive, or maybe it was just the sheer force of will young devs have. I honestly think having to 'figure things out' with bad hardware is a great learning experience.

I am now sitting beside my workstation with 64 GB of ram and 24 gb of vram and a beefy 16 core cpu. It alone has more L3 cache on the cpu than I had ram in either machine back in the day!


had to read that title twice


Came here specifically for this comment


Yep.


Some creativity there.


Cannot wait for modern Dillo that supports Wayland.


brew install dillo, for those of you on MacOS


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.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: