Skip to content(if available)orjump to list(if available)

Lynx is the oldest web browser still being maintained

Lynx is the oldest web browser still being maintained

77 comments

·March 16, 2025

Kudos to the folks keeping it running.

https://en.m.wikipedia.org/wiki/Lynx_(web_browser)

andai

Many moons ago I was on a constrained internet connection -- I set up a repeater by hanging an old phone over my curtains so it could catch Wifi from the cafe across and connected to the phone's internet over bluetooth.

I had like 2KB/s.

This made most of the internet unusable, but it turns out the parts I care about are text. So I just browsed it through a text browser.

This didn't really work either, because it turns out web protocols don't work very well over 2KB/s.

So I browsed the internet by connecting to a $1 VPS (very fast internet!) over Mosh (which is like SSH, but more efficient and resilient). So that way, it would only send the actual bytes of text to me.

I mostly browsed HN and the linked articles at that point.

The browser that rendered HN the best in those days was w3m. I remember it had indentation and even mouse / scrolling support. I tried lynx too and it was good too, but I went with w3m in the end.

I see w3m hasn't been updated in 15 years, but it's probably still better for reading HN, whose UI hasn't changed for longer than that! I will have to give them both a spin :)

kaiwen1

I still used Lynx as my default browser while working on ships until 2020. Satellite internet connections at sea were slow and very expensive which made Lynx a good choice. But it turned out that the text-based, distraction-free browsing could be a better experience than the same site in a modern browser. And a few sites still serve text versions, like text.npr.org. I liked Lynx enough that I would still use it back on land until the habit faded.

esotericwarfare

You can render JS only websites using chromium headless like this:

chromium --headless example.com --disable-gpu --run-all-compositor-stages-before-draw --dump-dom --virtual-time-budget=10000 --window-size=800,600 | sed "s|<head>|<head><base href=example.com>|g" | lynx -stdin

fouc

[delayed]

ngneer

Still use it in the terminal when debugging cloud applications. KUTGW!

susam

It is unfortunate that modern web development has led to websites so complex that they either break entirely or look terrible in text-based browsers like Lynx. Take Mastodon, for example:

  $ lynx https://mastodon.social/
  […]
  To use the Mastodon web application, please enable JavaScript.
  Alternatively, try one of the native apps for Mastodon for your
  platform.
The C2 Wiki does not load either:

  $ lynx https://wiki.c2.com/
  […]
  javascript required to view this site
                   why
To their credit, at least they use the <noscript> tag to display the above notices. Some websites don't even bother with that. But there are many old school websites that still load fine to varying degrees:

  lynx https://danluu.com/            # Mostly okay but some needed spaces missing
  lynx https://en.wikipedia.org/      # Okay, but a large wall of links on top
  lynx https://irreal.org/blog/       # Renders fine
  lynx https://libera.chat/           # Mostly fine
  lynx https://news.ycombinator.com/  # Of course!
  lynx https://sachachua.com/         # Mostly fine
  lynx https://shkspr.mobi/           # Renders really well
  lynx https://susam.net/             # Disclosure: This is mine
  lynx https://norvig.com/            # A classic!
  lynx https://nullprogram.com/       # Also pretty good
If you have more examples, please comment, and I'll add them to this list in the two hour edit window I have.

While JavaScript has its place, I believe that websites that focus on delivering primarily text content could prioritise working well in TUI browsers. Sometimes testing it with text-based browsers may even show fundamental issues with your HTML. For example, several times, I've seen that multiple navigation links next to each other have no whitespace between them. The links may appear like this:

  HomeBlogRSSAboutCodebergMastodon
Or, in a list of articles, dates and titles may appear jammed together:

  14 Mar 2025The Lost Art of Dual Booting
  15 Mar 2025Some Forgotten Features of Gopher 
  16 Mar 2025My Favourite DOS Games
The missing spaces aren't obvious in a graphical browser due to the CSS styling hiding the issue, but in a text-based one, the issue becomes apparent. The number of text-based web users may be shrinking, but there are some of us who still browse the web using tools like lynx, w3m, and M-x eww, at least occasionally.

crazygringo

Is it really so bad?

Unlike computer interfaces, the web was never text-first. It was graphical from the start. The first browser was in a GUI, not a terminal.

Sites have been hobbled/broken on Lynx since the very beginning. It's neat and can be convenient to have a browser that works in your terminal for simple stuff, but the web was never designed for that. It's natural and to be expected that many sites will break. The burden is really on Lynx to do what it can to support sites as they are, rather than sites to try to build compatibility with Lynx.

It's kind of like, there are programs to "view" a PDF in the terminal, or at least its text content. But PDF authors shouldn't be expected to optimize the order text is presented for those programs. That's not what PDF was ever meant for, even if you can get it work sometimes.

scratcheee

Given the web’s much wider remit than pdf, it has support for accessibility tools and much better non-visual handling than pdf, so the comparison isn’t entirely fair I think. If a website doesn’t handle lynx well, there’s a good chance it doesn’t handle accessibility well either.

ForTheKidz

> It's natural and to be expected that many sites will break.

There is nothing "natural" about software development at all. It was an active choice to hobble the internet as a browser to sell ads via interactive apps.

prepend

Wasn’t lynx before other graphical browsers? I remember first using the web through a vax terminal and lynx. You could download images but had to launch a viewer.

mongol

No it wasn't. The img element was not added to the standard until HTML 2.0

crazygringo

Images and other media were supported from the start, they just opened in separate windows instead of being inline.

The first browser ran on NeXT, graphically. It did not grow out of the terminal. And the very first publicly formalized definition of HTML in 1993 did already include the img tag:

https://www.w3.org/MarkUp/draft-ietf-iiir-html-01.txt

TachyonicBytes

I have to add https://nullprogram.com, just because of the care the author took to have it work better in lynx[1]:

    Just in case you haven’t tried it, the blog also works really well with terminal-based browsers, such as Lynx and ELinks. Go ahead and give it a shot. The header that normally appears at the top of the page is actually at the bottom of the HTML document structure. It’s out of the way for browsers that ignore CSS.
[1] https://nullprogram.com/blog/2017/09/01/

ta1243

And of course https://news.ycombinator.com/

Which works perfectly, including navigation (next/prev/parent). The perfect way to use javascript to enhance a site (collapsing threads etc) but not require it.

HN is hosted on a single machine in a colo somewhere (with a backup elsewhere), yet has far more value than the majority of sites 100 times as complex.

monsieurbanana

Because HN value is the value of the comments, and those are a scarce resource. Making a great website (for whatever is your definition of great) doesn't guarantee that it will become valuable.

All this to say, HN shouldn't an example to blindly follow.

cedilla

> The number of text-based web users may be shrinking

I wouldn't be surprised if it's growing in absolute numbers, in relative numbers it stays at essentially 0% where it always was.

kragen

When I started using the WWW in 01992 the majority of Web users were probably using text-based browsers, and specifically Lynx, because that was what the University of Kansas was using for its campuswide information service (CWIS). Mosaic didn't exist yet, and most people accessing the internet were using either dumb terminals like I was (typically in my case a VT-100 or CIT-101 clone of it) or dialup terminal emulators like Procomm+.

johnisgood

I made an e-commerce platform that has zero JavaScript. It is PHP only. Additionally, cgit uses JavaScript for updating idle time, but you do not need it, just refresh the page.

But yeah, I wish people were more hesitant over-using JavaScript.

zimpenfish

Brutaldon[0] is a Mastodon UI that (allegedly) works with Lynx. Which is something.

[0] https://brutaldon.org/about

1vuio0pswjnm7

Been using a text-only browser daily for over thirty years now. In the early to mid 90's I used Lynx. For me, it is the worst of all the text-only browsers I have tried. I would never go back to using it.

ndsipa_pomu

So, what's your favourite text-only browser?

john-tells-all

As a web developer, everything is in the editor. A super-fast way to preview my web page changes is:

    lynx --dump localhost:8000/mypage.html
Put that in a loop. My server or frontend updates appear immediately and I don't have to mess with triggering an external browser or faffing about. Wonderful tool!

donatj

Very early in my Linux days in the early 2000s I was bound and determined to learn how to use Lynx as I thought the skill would be a necessity for maintaining servers. Being able to look up issues online and what not.

Little did I realize that 99% of the time I would be SSHed in from a full desktop with a standard browser, and Lynx has just been kind of a fun novelty for me.

febeling

I miss websites that look like lynx's: https://lynx.browser.org/

nabla9

Missing one line to look good in mobile.

  <meta name="viewport" 
     content="width=device-width, initial-scale=1">

zimpenfish

Added. Makes the text better but now the screenshot is too large. Bloody HTML.

tsukikage

What does that do, and why is it not the default?

nabla9

Many mobile devices render pages in a virtual window aka viewport, which is wider than the screen, and then shrink the rendered result down so it can all be seen at once.

Mobile browsers can stop doing that any time they want. They do it because pages not optimized for mobile and break often in mobile.

This 'shit-sifting' phenomenon in common in open protocols with lots of software and inertia.

1. Bad shit in the other end breaks this end.

2. Fix it with hack in this end.

3. Good shit in the other end is now bad shit with the fix.

4. Add workaround to make good shit good again.

(Microsoft Internet Explorer was born after Bill Gates did seance and Satan taught him to use this phenomenon to corrupt the internet.)

Paianni

That landing page seems unmaintained, I think this is the main home page: https://lynx.invisible-island.net/

zimpenfish

> That landing page seems unmaintained.

I maintained it for a while, then delegated the DNS to someone else, but they didn't maintain it either, swapped it back. ~I'll update it when I get a chance.~

edit: Updated with the correct version and some small HTML tweaks

kragen

This says:

> Access Denied - Sucuri Website Firewall

...

> Block reason: Access from your Country was disabled by the administrator.

For that reason I don't think it's a good page to recommend.

andai

The font in the screenshot is Cosmic Sans [sic],

https://github.com/gregkh/cosmic-sans-neue

which was later renamed Fantasque due to hate mail.

zimpenfish

> The font in the screenshot is Cosmic Sans

Probably Fantasque because I've (to the best of my memory) never installed Cosmic Sans (and I made the screenshot, obvs.) but I do occasionally use Fantasque for terminals.

But since the screenshot needs updating, I'm open to suggestions for what font to use this time.

greggsy

Do you mean the naming similarity to Comic Sans?

piker

Unreadable on a phone without zooming and panning. A little CSS wouldn’t be a bad thing here.

brainwad

Perfectly readable in Firefox Mobile. Chrome too. What mobile browser are you using?

metalman

also works with android "Stoutner privacy browser" with java scripts, cookies, DOM, turned OFF went strait to the resources page, where there are versions for a lot of different OS's nothing for android, but not realy expecting to find that, anyway.

eviks

You mean unreadable on mobile due to tiny text?

galago

Should we blame an old timey basic webpage for its lack of complexity or should we blame a modern browser for not accommodating the web in its most simple form?

eviks

We can walk and chew gum? Also, how much complexity do you think is needed to fix this by the webpage?

bdw5204

It's perfectly readable on Brave for Android. The text even wraps to the screen size so you don't have to scroll.

Which phone browser renders it in an unreadable manner?

eviks

Any phone browser that rendered the page before they added a simple fix

hsbauauvhabzb

I’m sorry to hear that lunch to zoom is hard on your fingers

im3w1l

Looked fine for me on mobile.

vogelke

I use it for two things:

* saving webpages as text with the links nicely organized at the bottom, and

* calling it from mutt (MUA) to display HTML parts of mail messages.

It works great and it's consistent.

486sx33

Like most people my age, my first Internet experience at home was with lynx on a Unix shell. We shared credentials for an account at the school board that we scored from a teachers aid. It was sweet to dial into the school board (same numbers all the teachers used!) and surf around in text only lynx.

noufalibrahim

My first browser. There was another one called links which would display graphics inside the terminal.

https://en.m.wikipedia.org/wiki/Links_(web_browser)