[HN Gopher] Dillo, a multi-platform graphical web browser
       ___________________________________________________________________
        
       Dillo, a multi-platform graphical web browser
        
       Author : nazgulsenpai
       Score  : 174 points
       Date   : 2025-11-05 18:40 UTC (4 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | fer wrote:
       | Previous/related: https://news.ycombinator.com/item?id=38847613
        
       | 1313ed01 wrote:
       | I installed the latest (version 1.4) FreeDOS just now and keeping
       | half an eye on the installer as names of installed packages
       | flashed by I noticed Dillo. Is DOS still a supported platform or
       | is FreeDOS shipping some old version? I hope it is the former.
        
         | kolme wrote:
         | AFAIK Dillo is GTK-based, at least the UI part, so I don't
         | think so.
        
           | gtk40 wrote:
           | Nope, it uses https://www.fltk.org/
        
             | axus wrote:
             | FLTK was a pleasure to use (for uncomplicated software).
             | They also put the latest code on Github:
             | https://github.com/fltk/fltk
        
             | 1313ed01 wrote:
             | I just started it up and it turned out to be Dillo 3.0 from
             | 2011. I do not know if it was using FLTK back then, but a
             | quick search says that FLTK has been ported to DOS so that
             | might not be an obstacle for the current developers to keep
             | FreeDOS support if they wanted to.
        
         | nazgulsenpai wrote:
         | It looks like FLTK was ported to DOS back in 2011 so it might
         | be real https://sourceforge.net/p/freedos/news/2011/11/dillo-a-
         | web-b...
        
         | rodarima wrote:
         | AFAIK Georg Potthast wrote a port that worked in DOS based on
         | the work that Benjamin Johnson for Windows. I believe it was
         | based on 3.0p4:
         | 
         | https://www.bttr-software.de/forum/board_entry.php?id=10797
         | 
         | Unfortunately, none of those ports made their way back to the
         | main project. However, if there is enough interest I would be
         | willing to merge them. I'm not very familiar with DOS/FreeDOS,
         | so probably someone would have to help us to update the
         | changes, but probably doable between 3.0 and 3.2.0.
        
       | nicoburns wrote:
       | If anyone is interested in a modern take on a lightweight,
       | embeddable web browser / browser engine (that supports features
       | like Flexbox, CSS Grid, CSS variables, media queries, etc), then
       | I'm building one over at https://github.com/DioxusLabs/blitz
       | 
       | Feature support matrix is here: https://blitz.is/status/css
       | 
       | This month I have been working on support for CSS floats
       | (https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/P...)
       | (not yet merged to main), which turn out to still be important
       | for rendering much of the modern web including wikipedia, github,
       | and (old) reddit.
       | 
       | EDIT: I should mention, in case anyone is interested in helping
       | to build a browser engine, additional collaborators /
       | contributors would very welcome!
        
         | maxloh wrote:
         | What JavaScript engine are you using/planning to use? I did a
         | quick search on GitHub and found no results.
        
           | nicoburns wrote:
           | That's a bit of an open question at the moment. The obvious
           | choice from a Rust ecosystem perspective (easiest to
           | integrate) would be Boa (https://boajs.dev/). It has
           | excellent standards conformance, but terrible performance.
           | We'd need to test to what extent that would be an issue in
           | practice.
           | 
           | Other engines on my radar: quickjs, hermes, primjs (and of
           | course V8/JSC/SM, but they don't exactly fit with the
           | "lightweight ethos").
           | 
           | There is also the possibility of bindings with more than one
           | engine and/or using some kind of abstraction like NAPI or
           | JSI.
        
         | leshokunin wrote:
         | Took me a sec to understand you didn't mean you're adding
         | support for numbers with a comma :)
        
           | cyanmagenta wrote:
           | Took me a sec to understand you meant comma as "decimal
           | point" :)
        
             | leshokunin wrote:
             | Hahaha fair point!
        
         | bryanlarsen wrote:
         | Mentioning your usage of servo components might help with
         | credibility. You're not starting from scratch.
         | 
         | Edit: to be clear, I consider this a good thing. You've got a
         | head start, are contributing to the ecosystem and aren't doing
         | by yourself something that others have spent billions on.
        
           | nicoburns wrote:
           | Yes, we've deliberately tried to make use of existing
           | libraries (either from other browser engines or general
           | purpose libraries) where possible.
           | 
           | The main thing we pull in from Servo (which is also shared
           | with Firefox) is the Stylo CSS engine, which is a really
           | fantastic piece of software (although underdocumented - a
           | situtation I am trying to improve). I was recently able to
           | add support for CSS transitions and animations to Blitz in ~2
           | days because Stylo supports most of the functionality out of
           | the box.
           | 
           | (the other smaller thing we use from servo is html5ever: the
           | html5/xhtml parser)
           | 
           | We also rely on large parts of the general Rust crate
           | ecosystem: wgpu/vello for rendering (although we now have an
           | abstraction and have added additional Skia and CPU backends),
           | winit for windowing/input, reqwest/hyper/tokio for HTTP,
           | icu4x for unicode, fontations/harfrust for low-level font
           | operations, etc.
           | 
           | And while we're building the layout engine ourselves, we're
           | building it as two independently usable libraries: Taffy for
           | box-level layout (development mostly driven by Blitz but used
           | by Zed and Bevy amongst others), and Parley for text/inline-
           | level layout (a joint effort with the Linebender open source
           | collective).
           | 
           | ---
           | 
           | I wish that the Servo project of 2025 was interested in
           | making more of their components available as independent
           | libraries though. Almost all of the independently usable
           | libraries were split out when it was still a Mozilla project.
           | And efforts I have made to try and get Servo developers to
           | collaborate on shared layout/text/font modules have been in
           | vain.
        
       | kolme wrote:
       | I used to use it, like over 20 years ago! Mozilla Suite was too
       | slow for my taste and I only reached for it if Dillo couldn't
       | render a page :)
       | 
       | IIRC I stopped using it when Firefox ("Phoenix" at the time) was
       | released.
        
         | jnovek wrote:
         | Exactly the same! I was a student and couldn't afford a very
         | nice laptop so it was fluxbox + dillo for me.
        
       | gtk40 wrote:
       | Dillo works surprisingly well. I've used it on older systems
       | running new operating systems. It does a web browser should do
       | best: read web pages.
        
         | agumonkey wrote:
         | the lightness and lack of javascript can be very therapeutic
        
       | SuperNinKenDo wrote:
       | Was a lifesaver to me back in the day, running my frankenstein
       | machine pieced together from useless spares I cobbled together
       | from the computer store I worked at briefly. Every piece of
       | software I ran was trimmed down to the absolute minimum, and it
       | was a time before the web was completely unusuable without an ad
       | blocker. Fond memories of Dillo.
        
       | gregsadetsky wrote:
       | `brew install dillo` on Macs (and see [0] for other platforms)
       | 
       | and then `dillo` starts up a 1.1Mb executable that is so
       | freaking, shockingly fast.
       | 
       | TIL I also learned that although the Google homepage renders
       | beautifully, I need to "Turn on JavaScript to keep searching" [1]
       | 
       | Wow, Google Maps is even snarky-ish about it: "When you have
       | eliminated the JavaScript, whatever remains must be an empty
       | page." (that's what appears! for real)
       | 
       | I mean, what was I expecting. U+1F643.
       | 
       | [0] https://github.com/dillo-
       | browser/dillo/blob/master/doc/insta...
       | 
       | [1]
       | https://www.reddit.com/r/google/comments/1i3njv0/google_begi...
        
         | nicoburns wrote:
         | Yeah, Google stopped working without JavaScript in the last
         | year (although I believe this is a region-dependent block and
         | may also vary by user agent string)
        
           | rodarima wrote:
           | Yeah, I tried to reach out to Google back when they
           | introduced the JS-wall, but they seem to have an AI chatbot
           | acting as a filter, so I didn't spent much energy.
           | 
           | Later they also blocked other non-JS browsers like links or
           | w3m, so I assume they no longer care. They used to maintain
           | several frontends that worked in really old devices.
           | 
           | I don't think there is any User-Agent that works today,
           | however you can still use the Google index via other search
           | indexes that can fetch Google results without JS (for example
           | Startpage still works). However, it is probably a good idea
           | to have more options available that have their own
           | independent index engine (for example Mojeek). Seirdy has a
           | very good list: https://seirdy.one/posts/2021/03/10/search-
           | engines-with-own-...
        
             | nicoburns wrote:
             | Startpage is a good recommendation! I am able to search the
             | web using my browser with startpage. I had tried duckduckgo
             | but have been unable to get past the captcha.
        
           | userbinator wrote:
           | Only several weeks ago was when they broke it for all UAs I
           | could try. If anyone has figured out one that still works,
           | please do tell.
           | 
           | Incidentally, DDG still works without JS.
        
           | t-3 wrote:
           | On the same machine, Google works fine in links, but fails in
           | dillo, seamonkey, firefox without js.
        
           | jmclnx wrote:
           | Yes, I have been using
           | 
           | https://lite.duckduckgo.com/lite
           | 
           | for searching in Dillo. Once in a while you may get a captcha
           | from DDG that is far better that any other captcha I have
           | ever seen. The captcha is easy to use and can be a bit fun :)
        
       | rodarima wrote:
       | Maintainer here.
       | 
       | We are currently in the process of moving Dillo away from GitHub:
       | 
       | - New website (nginx): https://dillo-browser.org/
       | 
       | - Repositories (C, cgit): https://git.dillo-browser.org/
       | 
       | - Bug tracker (C, buggy): https://bug.dillo-browser.org/
       | 
       | They should survive HN hug.
       | 
       | The CI runs on git hooks and outputs the logs to the web (private
       | for now).
       | 
       | All services are very simple and work without JS, so Dillo can be
       | developed fully within Dillo itself.
       | 
       | During this testing period I will continue to sync the GitHub git
       | repository, but in the future I will probably mark it as
       | archived.
       | 
       | See also:
       | 
       | - https://fosstodon.org/@dillo/114927456382947046
       | 
       | - https://fosstodon.org/@dillo/115307022432139097
        
         | fishgoesblub wrote:
         | Why cgit and not something nice like Gitea, or Forgejo?
        
           | thesuitonym wrote:
           | My guess is gitea and forgejo don't render well in Dillo.
        
           | Bolwin wrote:
           | They're like 10x more complex and you don't need most of
           | their functionality for just a frontend.
           | 
           | That said I wish there was something a little better than
           | cgit
        
             | messe wrote:
             | Have you looked at self hosting sourcehut
             | (https://sourcehut.org/)?
        
               | rodarima wrote:
               | Yes, but all those services have the same main problem: a
               | single point of failure. They also don't work offline.
               | 
               | I believe that storing the issues in plain text in git
               | repositories synced across several git servers is more
               | robust and future-proof, but time will tell.
               | 
               | Having a simple storage format allows me to later on
               | export it to any other service if I change my mind.
        
         | mixmastamyk wrote:
         | Hmm, it is tiny on my highres screen. Anyone know how to double
         | the scale?
        
           | O1111OOO wrote:
           | Check out: /etc/dillo/dillorc
           | 
           | There are options here for (my setup below):
           | 
           | geometry=1600x900
           | 
           | increase font_factor=1.75
           | 
           | bg_color=0xFAF9F6
           | 
           | Start and Home pages too.
        
         | nicoburns wrote:
         | Is there some kind of status tracker somewhere. That describes
         | which web standards are supported?
        
           | rodarima wrote:
           | Not really. There was this list but it is outdated:
           | https://dillo-browser.org/old/css_compat/index.html
           | 
           | Probably the best indicator of which features are supported
           | is to pass as many tests as possible from WPT that cover that
           | feature.
           | 
           | I did some experiments to pass some tests from WPT, but many
           | of them require JS to perform the check (I was also reading
           | how you do it in blitz). It would probably be the best way
           | forward, so it indicates what is actually supported.
        
             | nicoburns wrote:
             | > but many of them require JS to perform the check
             | 
             | Yeah, if we add JS support to Blitz then one of our initial
             | targets will probably be "enough to run the WPT test
             | runner".
             | 
             | > I was also reading how you do it in blitz
             | 
             | We are able to run ~20k tests (~30k subtests) from the
             | `css` directory without JS which is IMO more than enough
             | for it to be worthwhile.
             | 
             | > Probably the best indicator of which features are
             | supported is to pass as many tests as possible from WPT
             | that cover that feature.
             | 
             | Yes, and no. It definitely is an indicator to some extent.
             | But in implementing floats recently I've a lot of the web
             | suddenly renders correctly, but I'm only passing ~100 more
             | tests!
        
         | eikenberry wrote:
         | What is the bug tracking software you are using?
        
           | saint_yossarian wrote:
           | https://git.dillo-browser.org/buggy/
        
           | rodarima wrote:
           | I wrote my own:
           | 
           | https://git.dillo-browser.org/buggy/
           | 
           | It fetches the issues from GitHub and stores them in
           | <number>/index.md in Markdown format, with some special
           | headers. I then keep the issues in a git repository:
           | 
           | https://git.dillo-browser.org/bugtracker/
           | 
           | So we have a very robust storage that we can move around and
           | also allows me to work offline. When I want to push changes,
           | I just push them via git, then buggy(1) runs in the server
           | via a web hook. This also tracks the edit changes.
           | 
           | While typing, I often use `find . -name '*.md' | entr make`
           | which regenerates the issues that have changed into HTML as
           | well as the index, then sends a SIGUSR1 to dillo, which
           | reloads the issue page.
           | 
           | The nice thing of allowing arbitrary HTML inline is that I
           | can write the reproducers in the issue itself:
           | 
           | https://git.dillo-
           | browser.org/bugtracker/tree/501/index.md#n...
           | 
           | Closing an issue is just changing the header "State: open" by
           | "State: closed", often with a comment pointing to the merged
           | commit.
        
             | khimaros wrote:
             | maybe of interest: https://github.com/git-bug/git-bug
        
         | imglorp wrote:
         | Repeating a warning from github about the old URL - dillo.org
         | is not controlled by the devs and could become a malware route,
         | is that right?
        
           | rodarima wrote:
           | Yes, thanks for the reminder. This is what they write about:
           | 
           | https://dillo.org/post-sitemap.xml
           | 
           | At some point I should investigate if we can fill a complaint
           | to get it taken down at least. Here is more info:
           | https://dillo-browser.org/dillo.org.html
        
         | znpy wrote:
         | I have the fondest memories of running dillo under netbsd on my
         | hp jornada 728, around 2008 -2009... thank you for all the
         | work!
        
           | jmclnx wrote:
           | And dillo still works great on NetBSD :)
           | 
           | I think it is becoming more important to i386 BSD, especially
           | since i386 OpenBSD can no longer build Firefox, Seamonkey and
           | IIRC Chrome on i386 systems.
           | 
           | I have been using dillo more and more as time goes on, plus
           | you can get plugins for Gemini Protocol and Gopher.
        
             | anthk wrote:
             | gemini://gemi.dev with News Waffle it's a godsend to read
             | bloated news sites, both in English and in Spanish. Also,
             | gopher://magical.fish The register, some bloated Spanish
             | such as Xataka and Genbeta...
        
           | MarsIronPI wrote:
           | I remember installing Debian on my OLPC XO-1. Dillo and
           | Netsurf were the only browsers that I even tried running on
           | that thing (w. 512MB RAM). Netsurf had better compatibility,
           | but Dillo was noticeably faster and more responsive. Truly a
           | pleasure to use when it supported the site I was on.
        
         | sylware wrote:
         | If they could move away from c++ too.... like plain and simple
         | C like the netsurf browser?
        
           | anthk wrote:
           | DIllo is much lighter and it supports Gopher, Gemini, Info,
           | Man and _potentially_ in a further future, URL rewritting
           | plugins.
        
         | mtillman wrote:
         | It still has great looking icons, a proper boarder bevel, and
         | real scroll bars. Thank you!
        
         | puttycat wrote:
         | Can you say more about why you're moving away from GitHub?
        
       | glenstein wrote:
       | Dillo is hands down the best ultra lightweight browser ever
       | developed in my opinion. I had a Toshiba Tecra that I got from
       | Goodwill when I had absolutely no money whatsoever in my college
       | days, And it was at least 15 years out of date as a laptop even
       | when I first got it. I installed Puppy Linux on it, and I had
       | Dillo as the browser. Its ability to bring rapid web browsing to
       | old hardware is without equal.
       | 
       | I still use a modern version of it now on a Pine Tab 2 tablet,
       | which has slow enough hardware that you want something like Dillo
       | to make it feel snappy. I just make sure to bookmark lightweight
       | websites that are most agreeable to Dillo's strip down versions
       | of web pages.
       | 
       | It's one of the reasons I feel like Linux on the desktop in the
       | 00s and 2010s had the superpower of making ancient hardware
       | nearly up to par with modern hardware or at least meaningfully
       | closing the gap.
        
       | acaloiar wrote:
       | I may be imagining this, but I'm nearly certain I was running
       | dillo on a PDA (I want to say Palm Treo) around 2001. I remember
       | it feeling revolutionary to open up a webpage on something other
       | than my linux desktop computer at the time. Over Wifi!
       | 
       | I hope it survives another 25 years.
        
         | rodarima wrote:
         | Oldest I could find was an Ipaq 3700: https://dillo-
         | browser.github.io/gallery/
        
       | KaiserPro wrote:
       | Holy fuck, is Dillo still going? thats amazing work. I remember
       | using it with compiz and that whole generation of early 64bit
       | software.
        
       | jll29 wrote:
       | Cool, I installed it on a Mac with M1, which gives you a glimpse
       | how fast live could be without bloat.
       | 
       | Using it shows how rotten the World Wide Web has become, with
       | mandatory JavaScript everywhere, even on google.com, which I was
       | not aware of.
       | 
       | I'm very much looking forward to Ladybird's first alpha release
       | next August.
        
       | Figs wrote:
       | How is the name pronounced? Is it said like the pickle (Dill-O)
       | or with the Spanish double L (diyo) or something else?
        
       | joshmarinacci wrote:
       | I'm impressed. It runs my dev blog quite well. Some of the CSS
       | alignment is off and it doesn't load web fonts, but it looks
       | basically the same as Chrome. Even the syntax highlighted code
       | snippets work.
       | 
       | https://joshondesign.com/2025/09/16/embedded_rust_03
        
         | busymom0 wrote:
         | > it doesn't load web fonts
         | 
         | Some may consider that to be a feature
        
       | simonw wrote:
       | I noticed the original commit to Git was October 2007 - but if
       | you look at that commit it include this Changelog
       | https://github.com/dillo-browser/dillo/blob/93715c46a99c96d6...
       | which has the earliest entry of:
       | dillo-0.0.0.tar.gz [Dec, 1999]
       | 
       | Legendary project.
        
         | rodarima wrote:
         | In 2007 it was moved to Mercurial which I then exported to git
         | when the hg server went down. The history from 2002-2007 was
         | lost (I believe SVN), if someone still has a copy please send
         | it to us. See the missing section:
         | 
         | https://dillo-browser.org/release/3.1.0/commits-author.png
         | 
         | The initial release was around the 15th of December, 1999. It's
         | going to be 26 years ago: https://dillo-
         | browser.org/25-years/index.html
        
       ___________________________________________________________________
       (page generated 2025-11-05 23:00 UTC)