Top
Best
New

Posted by psxuaw 12/21/2025

Ruby website redesigned(www.ruby-lang.org)
427 points | 194 comments
kshahkshah 12/21/2025|
I used cursor over the past three weeks to update a 12 year-old Ruby on rails project. While it has been slightly updated throughout the years, this was my first proper modernization of the code base.

It’s been a real pleasure getting back into Ruby after so many years in typescript, python, and rust.

Happy to see the update. Real shame about the haters here, the Ruby community is a supportive and positive bunch that has shipped real products while others seem to worship at the altar of computer science alone… that’s about as counter snarky as I want to be here

scruple 12/21/2025||
I spent ~16 years with Ruby (as a non-primary language for the first 5 years, but then as my primary for the remainder), from ~2006/2007 til 2022/2023. I had a couple of hours free to spin up new personal project this morning. At first I was going to default to Python since I use it heavily at work. On a whim, I decided to see what Ruby 3.4 has to offer since it's been a few years. I am very happy with that decision. I really miss Ruby the language a lot, it's such a joy to work with.
andrei_says_ 12/21/2025||
Ruby is still a joy for me, too, and Rails continues to evolve while providing solid best practices as the default.

A side effect is an increased intolerance to agony, boilerplate verbosity, complexity. I look at the JavaScript world and shudder.

Also, Ruby being as expressive as it is, describing things to an LLM is not really a timesaver over writing the code myself.

DonHopkins 12/21/2025||
[flagged]
znpy 12/21/2025||
[flagged]
DonHopkins 12/21/2025||
[flagged]
periodjet 12/21/2025||
[flagged]
tovej 12/21/2025||
[flagged]
eudamoniac 12/21/2025||
So everyone born in USA is a native American, right?
tovej 12/21/2025||
Yes, they are native to the USA.

They aren't native american of course. That's a silly dishonest argument based on wordplay.

eudamoniac 12/21/2025||
So why are they not "native Americans" but the people referenced in your quote are "native Brits"?
tovej 12/21/2025||
[flagged]
TimTheTinker 12/21/2025||
So using a term as an ethnonym for historically British ethnic people is racist?

If so, is it racist to assert or assume that ethnic Europeans exist?

periodjet 12/21/2025|||
Social justice fundamentalism asserts that there are favored (“oppressed”) groups, and disfavored (“oppressor”) groups.

True believers have created a largely arbitrary grouping called “white people”, assigning it the “oppressor” label.

If a favored group’s nation were flooded by “white people”, that would be seen as an emergent situation requiring remedy; the opposite is what we’re seeing play out in societies like Britain, and is Not a Problem. I’m committing an act of violence by even describing it in this way.

How or when a disfavored group is restored to neutral or favored status is undefined; one would presumably have to consult a head priest of the movement for an answer (and I wouldn’t expect any coherence or clarity).

TimTheTinker 12/22/2025||
It sounds like a Marxist structure with re-assigned labels.
tovej 12/22/2025|||
What the hell are you on about.

"Native brit" does not identify a people the way "native american" does.

There is no entry in the dictionary for "native brit".

This is all I'm talking about.

Quit trolling.

throwawaypath 12/24/2025|||
"The English people are an ethnic group [...] native to England." [0]

"[White Brits] is an ethnicity classification used for the White population identifying as English..." [1]

The English are the native and indigenous ethnic group to England (London). White Brits are a category that includes the English.

QED.

[0] https://en.wikipedia.org/wiki/English_people

[1] https://en.wikipedia.org/wiki/White_British

tovej 12/27/2025||
The English are not indigenous to Britain. The best case for an indigenous culture is the Celts, Cornish, and Welsh.

None of this has anything to do with being white, it's the language that defines belonging to these groups.

throwawaypath 12/28/2025||
>The English are not indigenous to Britain.

False. The English are the extant indigenous people to England, and descend from ancient populations: "The English largely descend from two main historical population groups: the West Germanic tribes, including the Angles, Saxons, and Jutes who settled in eastern and southern Britain following the withdrawal of the Western Roman Empire, and the Romano-British Brittonic speakers who already lived there." [0]

QED.

>The best case for an indigenous culture is the Celts, Cornish, and Welsh.

Those are also "White Brits" who are indigenous to their respective areas.

>None of this has anything to do with being white

Glad you finally agree and admit to this.

>it's the language that defines belonging to these groups.

English language and culture is the current indigenous, native culture to England.

[0] https://en.wikipedia.org/wiki/English_people

TimTheTinker 12/22/2025|||
OP was trying to talk about ethnic brits, and I think that was clear from the context. He was then rebuked for that.
tovej 12/22/2025||
The OP was me. I pointed out how DHH's uses the term "native brit" to mean "white person" even though that is not the meaning of "native", which means you were born somewhere.
throwawaypath 12/24/2025||
>I pointed out how DHH's uses the term "native brit" to mean "white person"

Nowhere in his post does he mention "White person." He specifically mentions "native Brits." The only indigenous Brits native to the Britain are White Brits.

tovej 12/26/2025||
He links to a wikipedia article and cites a percentage for "native brits". That number on the wikipedia page is for white brits.

The only groups who could call themselves indigenous to Britain are the Celts, the Cornish, and the Bretons. The English (Anglo-Saxon) culture is foreign to the British isles.

Even then, none of this is related to skin tone. It's the culture that defines these potentially indigenous Celtic groups.

throwawaypath 12/28/2025||
>He links to a wikipedia article and cites a percentage for "native brits". That number on the wikipedia page is for white brits.

White Brits are the only indigenous, native Brits to Britain.

>The only groups who could call themselves indigenous to Britain are the Celts, the Cornish, and the Bretons. The English (Anglo-Saxon) culture is foreign to the British isles.

False. The English are the extant indigenous people to England, and descend from ancient populations: "The English largely descend from two main historical population groups: the West Germanic tribes, including the Angles, Saxons, and Jutes who settled in eastern and southern Britain following the withdrawal of the Western Roman Empire, and the Romano-British Brittonic speakers who already lived there." [0]

QED.

>Even then, none of this is related to skin tone.

Glad you finally agree and admit to this.

>It's the culture that defines these potentially indigenous Celtic groups.

English culture is the current indigenous, native culture to England.

[0] https://en.wikipedia.org/wiki/English_people

tovej 12/28/2025||
That's funny, your own statements are in contradiction with your conclusions. You say the English are descendants of west germanic tribes from the continent, and "Romano-British" groups (do you think the Romans were an Indigenous people? of the British isles?), then you say this proves they are indigenous.

Please do the minimum effort and connect the quote you did to what you claim it states. This does not contradict anything in my previous post. QED? Nothing was demonstrated. Demonstrate, please.

It is funny, because I did not introduce the term indigenous to this discussion, you did (for some strange reason). The term "indigenous" refers to a non-dominant, often colonized group of people with a connection to the land and traditional living on that land [1]

The English are neither. The Celtic people, if anyone, has a claim to this status on the British isles. They were living on the land for hundrds of years before they were colonized by the Romans (and other groups later, including the English).

I think it's sweet that you're trying to muddy things up by claiming I "finally agree" about skin tone being unrelated to culture or the adjective native. That's been my argument the whole time. You are the one stating that "White British" is the same as "Native Brit".

[1] https://whc.unesco.org/en/glossary/275/

throwawaypath 12/28/2025||
>That's funny, your own statements are in contradiction with your conclusions.

Your failure to understand basic anthropology does not constitute a contradiction. There is not contradiction.

>You say the English are descendants of west germanic tribes from the continent, and "Romano-British" groups (do you think the Romans were an Indigenous people? of the British isles?)

It arose as a fusion of the imported Roman culture with that of the indigenous Britons, a people of Celtic language and custom. [0]

>then you say this proves they are indigenous.

"Indigenous Britons" QED.

>Please do the minimum effort and connect the quote you did to what you claim it states.

I just did and have, multiple times.

>This does not contradict anything in my previous post. QED? Nothing was demonstrated. Demonstrate, please.

It directly contradicts your erroneous claims. Everything has been demonstrated with facts and links. You have nothing.

>It is funny, because I did not introduce the term indigenous to this discussion, you did (for some strange reason).

I did, what's your point? You failed and making any claim to the contrary.

>The term "indigenous" refers to a non-dominant, often colonized group of people with a connection to the land and traditional living on that land [1]

Hilarious because White Brits are no the dominant group of people in London, foreigners are. The English are the "people with a connection to the land and traditional living on that land."

Oops, you just proved my point for me! QED!

>The English are neither.

The English are both, native and indigenous, as proven above.

>The Celtic people, if anyone, has a claim to this status on the British isles.

The English descended from the Britons, they're literally British.

>They were living on the land for hundrds of years before they were colonized by the Romans (and other groups later, including the English).

This is hilariously incorrect. As proven above, the English descended from the Celtic Britons. It's quoted directly above.

>I think it's sweet that you're trying to muddy things up by claiming I "finally agree" about skin tone being unrelated to culture or the adjective native.

Glad that you agree DHH isn't a White supremacist since it has nothing to do with skin color.

>You are the one stating that "White British" is the same as "Native Brit".

From your source that defines " indigenous people":

"peoples in independent countries who are regarded as indigenous on account of their descent from the populations inhabited the country, or a geographical region to which the country belongs, at the time of conquest or colonisation or the establishment of present state boundaries and who, irrespective of their legal status, retain some or all of their own social, economic, cultural and political institutions."

That is literally the definition of the English people, in England, which is part of Great Brittan.

They are by definition indigenous.

QED with your own source.

[0] https://en.wikipedia.org/wiki/Romano-British_culture

tovej 12/29/2025||
Are you seriously claiming that White Brits are not the dominant ethnic group in the UK? Who's running the country? Out of the last twenty PMs, how many have been people of color? One?

You seem to love to write QED after a quote. That makes you look dumb. The English did not "fuse" with an indigenous people, they colonized or dominated an already colonized people, and in the process removed their "social, economic, cultural, and political institutions" [1]. This in turn does not fit in with the definition of Indigenous people. No scholar would ever claim that the English are indigenous to the British isles. That would be absurd. The same is true of the Romano-British. Whenever settlers "fuse" with an indigenous culture by importing their customs, the result is not an indigenous culture, it's a settler-colonial one.

Did you see the part underneath what you quoted in the UNESCO definition?

"According to the UN Permanent Forum on Indigenous Issues, the system has instead developed a modern understanding of this term based on the following:

    Self-identification as indigenous peoples at the individual level and accepted by the community as their member.
 - Historical continuity with pre-colonial and or pre-settler societies
 - Strong links to territories and surrounding natural resources
 - Distinct social, economic and political system
 - Distinct language, culture and beliefs
 - Form non-dominant groups of society
 - Resolve to maintain and reproduce their ancestral environments and systems as distinctive peoples and communities"
Does that sound like the English to you? Hardly. There is no continuity with pre-settler society. The Anglo-Saxon settlers replaced pre-existing culture.

And, again, skin tone does not relate to culture. Which is why the fact that DHH tries to claim it does makes him an ethnonationalist, a fringe far-right position.

It is funny to see you fail to argue like an adult. All the "QED"s and "erroneous claim" make you sound like a tiny Ben Shapiro in my mind. I wonder why you would subject yourself to this kind of humiliating self-own. You are constantly misinterpreting terms, simply saying "No" or "False" without ever citing anything but wikipedia. It's obvious you have no understanding of either anthropology nor of where to find information or how to interpret it. Thank you. It heartens me to get to confirm that racists are idiots.

[1] https://en.wikipedia.org/wiki/Anglo-Saxon_settlement_of_Brit...

throwawaypath 12/29/2025||
>Are you seriously claiming that White Brits are not the dominant ethnic group in the UK?

No one made this claim. White Brits (The English) are the native inhabitants of London, and are no longer the majority there. The definition you provided literally describes the exact scenario of the English in London.

>Who's running the country? Out of the last twenty PMs, how many have been people of color? One?

The current Mayor of London is a person of color (non-native ethnicity). Once again, you're doing all the work for me, proving my point.

>You seem to love to write QED after a quote.

Because I have shown and proven my points.

>That makes you look dumb.

Don't interpret your inability to understand something as "dumb."

> The English did not "fuse" with an indigenous people, they colonized or dominated an already colonized people, and in the process removed their "social, economic, cultural, and political institutions"

You are categorically false. Your source links to the Anglo-Saxons, not the English. "The English largely descend from two main historical population groups: the West Germanic tribes, including the Angles, Saxons, and Jutes who settled in eastern and southern Britain following the withdrawal of the Western Roman Empire, and the Romano-British Brittonic speakers who already lived there."

QED.

Your poorly constructing a straw man, possibly unknowingly, because you're out of your league here.

>This in turn does not fit in with the definition of Indigenous people.

Yes it does, not that the definition of indigenous people is something that you can claim. There is no singularly approved definition: "There is no singularly authoritative definition of indigenous peoples under international law and policy, and the Indig- enous Declaration does not set out any definition." [1]

>No scholar would ever claim that the English are indigenous to the British isles.

No scholar would ever claim that the English are not indigenous to the British isles. That would be absurd.

>The same is true of the Romano-British. Whenever settlers "fuse" with an indigenous culture by importing their customs, the result is not an indigenous culture, it's a settler-colonial one.

Of course it is, especially considering English culture was created in, developed, and is indigenous to... England. It's literally in the name. English culture wasn't created outside of England, it was created in England.

>Did you see the part underneath what you quoted in the UNESCO definition?

The part that literally proves my point, yes? Also, UNESCO definition isn't authoritative as shown above. Even then, English people/culture in London is indigenous considering the definition.

>Does that sound like the English to you?

That is exactly what the English in London are. Every point can be applied to the English in London.

>And, again, skin tone does not relate to culture.

No one made this claim.

>Which is why the fact that DHH tries to claim it does makes him an ethnonationalist

DHH did not make that claim either. You have poor reading comprehension if that's what you took away.

>a fringe far-right position.

There's nothing wrong with promoting or protecting the interests of native or indigenous people over those of immigrants or foreigners. This is not a fringe far-right position. Countries like Turkey, Japan, Palestine, South Korea, Israel, China, etc. all share this position.

>It is funny to see you fail to argue like an adult.

It's funny to see me eviscerate you. You're flailing around like a child that can't swim. You thrown insults out, share sources that prove opposite of what you're proposing, and don't understand basic anthropology.

>All the "QED"s and "erroneous claim" make you sound like a tiny Ben Shapiro in my mind.

All the nothing you've provided makes you sound like Trump in my mind.

> I wonder why you would subject yourself to this kind of humiliating self-own.

"I'm getting destroyed by this guy. Quick! Let me pretend like he's humiliating himself and not me!"

>You are constantly misinterpreting terms, simply saying "No" or "False" without ever citing anything but wikipedia.

"He has sources that correctly backup his statements. The sources in Wikipedia are right there, but I'm going to ignore them."

>It's obvious you have no understanding of either anthropology nor of where to find information or how to interpret it.

"I know you are but what am I?" Are you a toddler LOL?

>Thank you. It heartens me to get to confirm that racists are idiots.

Thank you. It heartens me to get to confirm that (anti-White) racists are idiots.

[0] https://en.wikipedia.org/wiki/English_people [1] https://www.ohchr.org/sites/default/files/Documents/Publicat...

Kwpolska 12/21/2025||
So many Web designers put zero thought into how their page looks when it is not loaded or not scrolled exactly past the trigger. So many sites say "0 happy customers", because someone thought showing incrementing numbers is cool. On this page, it opens up with a "100%" loading indicator, for a site that appears to have no interactivity that would require JS, just to show a pointless animation.
MrJohz 12/21/2025||
Yeah, I thought those code samples would run immediately, in which case maybe the loading would be justified (although surely very easy to avoid). Instead, they're links to a different page that has the same code sample and a link to run the code, meaning I need to press twice to see what the code does when it runs, which isn't a lot but is surely at least one (possibly two) clicks more than necessary.

That said, it's cool seeing some of those samples, because they're honestly not really what I expected. For example, I didn't expect the list subtraction to work at a set operation, so seeing that example gives me a feel for what sort of things I can do with Ruby code.

ModernMech 12/21/2025||
> I need to press twice to see what the code does when it runs, which isn't a lot

I don't know the exact numbers, but the figures show you lose a high percentage of viewers with each click. So if you have 100 people who view the first page, 10 of them might click the link to the second page, and only 1 of them might click the link to the third page. If having customers view the running code is crucial, you'd want it on the very first page, above the fold.

firefax 12/21/2025|||
I really like the 90s-esque aesthetic of sites like HN.

Low bandwidth, minimal in an artistic way.

I wish less sites would try to make them look like a wordpress from the early twenty aughts.

Elfener 12/21/2025|||
You don't even need to do a certain aesthetic to make your website fast. Just send your entire content in the HTML, instead of needing extra HTTP requests for JS and then more HTML before having all the stuff for your first render.
firefax 12/21/2025||
[matrix voice]

What if I told you that you don't need javascript?

elxr 12/23/2025|||
The early internet aesthetic is why, as much as I dislike the site's culture, I continue to use reddit + RES.

The UI, the minimal buttons, the tight paddings, the lack of pop-in, the complete lack of animations; these have all been essentially unchanged for the past decade. Even the dark mode colors look exactly as it did the first time I switched it on.

librasteve 12/21/2025|||
I am sure that the designers had to juggle a massive amount of community input and feedback and I know that this is not easy. Kudos to them for (i) leading with some very apt code examples, (ii) the 4 "whys" and (iii) the multilingual support.

Speaking from experience (recently we rebuilt https://raku.org), I am sure that they will come back and optimize, but tbh this is not the priority with a new site where the hits will top out at ~ 10k / hour.

I am no great fan of animations, simpler is better imho - and I have resisted requests to add a sandbox to the Raku site since https://glot.io/new/raku does such a good job anyway... but I think Ruby is likely to appeal to a wider audience via a cool design vibe, whereas Raku is still in the early adopter / geek phase of adoption.

btw Ruby is a fantastic language!

troupo 12/21/2025|||
> I am sure that they will come back and optimize, but tbh this is not the priority with a new site where the hits will top out at ~ 10k / hour.

You don't need to "come back and optimize" if you don't start with needing a progress indicator for a "transform: scale" animation to display a single static download link. The number of hits is not relevant.

Neither do you need to do three separate fetch requests for static plain text examples that you then laboriously dump into the DOM by creating dummy elements, putting content in there, then looking up and cloning `code` tags to then dump those code tags on the page.

port11 12/21/2025||
I think you might have an issue with modern frontend practices. That's okay, but there's a disproportionate amount of hate towards Ruby's redesigned page. And it looks perfectly fine. HTPP/2 parallel requests aren't that big a deal, all things considered.

The website looks cool to me, makes me want to try Ruby.

braiamp 12/21/2025|||
He doesn't hate Ruby's redesigned page. He is complaining about yet another example of waste of resources that clients have to do because you want your page look "dynamic". Please, make sure and be aware were these comments are being posted, a site that it's both "dynamic" and doesn't require much resources from the client.
troupo 12/21/2025|||
This is a page that appeared on HN front page news.

So what do you expect? People ignoring the frankly idiotic choices made that you now defend with "they will come back and optimize it"?

> HTPP/2 parallel requests aren't that big a deal, all things considered.

I literally see a progress counter that is for some reason required to display the most trivial animation to show ... a single static link. On a gigabit connection. All that takes up to two seconds.

On that same connection the same thing happen to three purely three static examples of code that somehow need up to two seconds to appear and to shift the entire content of the page.

Both are especially jarring on mobile.

port11 12/22/2025||
Hmm, I don't see it. The animation loads instantly for me on a cold visit. The examples were already there. I tried it in Orion and things were a bit slower, Firefox too. But still not the multi-second delay, and I'm here on a ~30Mbps copper line with some latency. (Thanks syndicus!)

That said, I've no reason to defend the page. It just didn't strike me as bad, but I can see how others are experiencing a bad page.

troupo 12/23/2025||
Here's mobile experience: https://youtube.com/shorts/LFIQeEL2S0U

The same is on desktop Firefox. For some reason youtube can't process the screencast for that :)

tempaccsoz5 12/21/2025||||
I once tried to try Raku years ago, but I was left really confused by the website and docs.

Clicking through the code examples on your new website, I kept being amazed at some of the great things Raku does. It's night and day in understanding the uses and purpose of the language! Thank you.

Unfortunately, as soon as I click into the "introduction" section of the docs I'm abandoned to a wall of links and am once again lost. I'll try persevere this time, but I think you could do adoption of Raku a great favour by working on organising your docs site a bit more clearly. Astro's docs are an amazing case-study on best-in-class docs layout and writing: https://docs.astro.build/en/getting-started/

librasteve 12/22/2025||
thanks I made a docs issue https://github.com/Raku/doc/issues/4739
trymas 12/22/2025|||
> Speaking from experience (recently we rebuilt https://raku.org),

FYI, front-page has a lot of examples, that I assume change when switching tabs, e.g. "multi-paradigm" "strict-gradual" "interactive-mode", etc.

But nothing happens, neither Safari 18.6, nor Chrome 143.0, on macOS 15.5.

lizmat 12/23/2025||
FWIW, cannot reproduce on Safari 18.6 on MacOS 15.6.1
mb2100 12/21/2025|||
It even loads the code snippets in separate HTTP requests :-( But the snippets themselves are really good! I'm going to update mine on https://mastrojs.github.io
zelphirkalt 12/21/2025|||
Yep, and for such cases it is usually very easy to make it work properly, if only a web developer put a little thought to it. We have most or all of the tools we need in HTML and APIs to make it work regardless. Like for example for the happy customer counter one could easily have a noscript fallback, that uses the number one already needs to retrieve to show the animation, but puts it there immediately. Then, iff JS gets executed, one can still animate the shit out of it.

It is part of what distinguishes actually good web devs from move fast and break everything kind of people.

efilife 12/21/2025||
The noscript would not be needed at all. The value could be the real one by default, then in js set to 0 and incremented
zelphirkalt 12/21/2025|||
True, in this case even easier!

I guess I thought of noscript due to other cases I had recently, where I noscript-ed a whole workflow and displayed elements, that should never appear, when JS is running.

jarek83 12/21/2025||
I like how it looks. I don't like to see how badly it is crafted tech-wise - not optimized images by size and deferring, JS for things that work natively in the browser, bloat of tailwind instead of nice clean and modern CSS.

Knowing ruby I can tell that the relaxed approach to the website does not correspond with sophistication in the language itself. If I wouldn't know ruby, that would be a put off for me, thinking that if they don't want to convince me tech-wise by their site, it might be similarly annoying to deep-dive into the language.

igravious 12/21/2025||
> not optimized images by size and deferring, JS for things that work natively in the browser, bloat of tailwind instead of nice clean and modern CSS.

care to elaborate?

jarek83 12/21/2025||
Sure:

- images: none are visible above the fold - all should be lazy loaded (like it is done with all conference images) and the pragdave.jpeg one does not need to be that large;

- JS: navigation toggle, including chevron rotation can be done in CSS using :has combined with checkbox/radio input. Similarly for header-navigation and theme-toggle (here combined with cookie store). Then toc.js - seems like something easy to do in the backend. Hero-animation - I haven't looked much through it but seems like at least some parts can be done in CSS;

- CSS/tailwind - well it would probably take less typing to do it just in CSS, the site does not seem to be that much componentized to benefit from tailwind.

MrJohz 12/22/2025|||
I would generally caution against doing toggles with CSS. While it can be done, it often has surprising effects, and can be difficult to make properly accessible (for example in the case of opening the navigation, I don't believe it's possible to set the correct aria tags to indicate that the toggle is a button that is showing/hiding another element on screen).

Instead, for a brochure site like this, I'd rather have the links just always visible, because this is the reference site for Ruby and I imagine a lot of people find them by searching "Ruby", coving l clicking the homepage, and scanning for the link to the docs/downloads/etc.

Alternatively, if the show/hide feature is really that important, right now I would (a) explore whether it can be done accessibly using the new invoker API, so you don't need JavaScript at all (with a JS fallback), or (b) just do it in JavaScript directly, but with an accessible default if the JS doesn't get loaded properly.

But yeah, the rest I largely agree with. There's a bunch of stuff here that would have been simpler, and arguably also easier, if they'd taken a slightly different approach.

azangru 12/21/2025|||
> Similarly for header-navigation and theme-toggle

The theme toggle has three states. How do you model this with a checkbox?

Elfener 12/21/2025|||
Why does a site even need a light/dark toggle, when you can just use prefers-color-scheme in CSS, and the user can select that in their browser settings?

(Also, technically, alternative stylesheets can be defined in HTML, except every browser except Firefox removed it: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/...)

ameliaquining 12/21/2025|||
Because being able to switch from light to dark mode by clicking a single button is a useful feature, and while it would be nice if operating systems provided this out of the box, many (e.g., Windows) do not.
azangru 12/21/2025||||
> Why does a site even need a light/dark toggle, when you can just use prefers-color-scheme in CSS, and the user can select that in their browser settings?

Good question, especially since the Ruby site already does this by default. Perhaps the argument is that one of the two color schemes may be designed so poorly that the user may want to manually switch to the other one.

jasonlotito 12/21/2025||||
Because as a user, I want to change the light/dark of your site, not every set, and not my OS. If you don't have a toggle, you are making assumptions that aren't accurate.
yawaramin 12/22/2025||
I am assuming that if the user selected a specific brightness mode, they want sites they visit to respect that theme. Call me crazy but this seems like common sense.
gbear605 12/22/2025||
I know some web developers think that that’s true, but looking at the average people I know, they tend to want different settings depending on the site. People don’t generally want computer-wide settings for darkmode.
collinvandyck76 12/22/2025||
This is true, also for people immersed in this world. Sometimes the dark mode of a site is ass, and it's better to set a preference for that site to use light mode to make it more usable.
jarek83 12/21/2025||||
It could be done with :indeterminate state (so key in a cookie would be absent or removed when switching), but I'd probably would do it with radios instead
SquareWheel 12/21/2025||
Note that a checkbox's indeterminate state can only be set via JavaScript, so that lessens the elegance of a CSS-based approach.

I agree that using radios would be better. Or just prefers-color-scheme, which sidesteps the FOUT issue that often occurs when storing theme settings in localStorage.

bmacho 12/21/2025|||
It's possible to have a 3-states CSS switch/slider that controls site theme. Google it or ask AI assistant.
markdown 12/22/2025||
The decorative underlines under the headings on the home page are embedded as content (<img> tags)!!!

Amateur hour.

tyre 12/22/2025||
I say this with love, compassion, grace, and all due respect: Who gives a shit?
markdown 12/22/2025||
It's a website for web devs. Web devs give a shit.
ecshafer 12/22/2025||
Ruby isn't necessarily for web devs. Ruby is popular for all sorts of business line applications. In Japan is popular for lower level programming. You can do game programming via something like Dragon Ruby. Sure its very popular for Rails, but you don't necessarily need to do web dev.
continuational 12/21/2025||
Not long ago I was looking through programming language sites to figure out how to best introduce the language I'm working on.

ruby-lang.com stood out with a text in a big font:

Ruby is...

Followed by a paragraph about what makes Ruby special. I think that was an exceptionally simple and natural way of introducing something as complex as a programming language.

ModernMech 12/21/2025|
"Programmer's best friend" is precisely the wrong thing to do though (it says nothing and only makes the reader confused. Are we talking about a language or a pet? I'm not looking for a friend.). They took a step back with that.

For reference this is the old one, which is much better: https://www.ruby-lang.org/images/about/screenshot-ruby-lang-... From: https://www.ruby-lang.org/en/about/website/

The old one was better because it said something about what the language is and how it benefits the user. "Best friend" is not descriptive. "dynamic language with minimal syntax that is easy to read and write" at least tells me something about Ruby, its priorities, and value proposition. I'm very concerned about a language that claims it wants to be my friend.

port11 12/21/2025||
Dunno, it's a comfy tagline. I never got into Ruby but it always feels to me like it's a really ergonomic and cozy language. Sure, the best friend thing is a stretch, but it's honestly a slogan. How many people land on this page with no knowledge of what Ruby is and will confuse it with an app to make friends?
ModernMech 12/22/2025||
It sure is a comfy tagline, but because it doesn't really mean anything you could say it about any language, and it only works if you already know what Ruby is. It's not that anyone would confused Ruby with an app to make friends, but it doesn't really say anything about Ruby at all. As other pointed out, the page doesn't even make clear that Ruby is a programming language.
Alifatisk 12/21/2025||
I like the new design, however, I strongly believe the website could've been optimized further and used much less JS. Opening the website with JS turned off makes the code examples not load and the front page freezes as "0%" loading.

What does it do exactly? It just fetches[1] to another part of site and retrieves static text[2] to be displayed. This part could've been kept as part of the html, no need for this artificial loading. It's not a webapp, it's a website.

1. https://www.ruby-lang.org/javascripts/try-ruby-examples.js

2. https://www.ruby-lang.org/en/examples/i_love_ruby

In this day and age, it is possible to have an appealing, responsive, lightweight website with no JS (maybe except for darkmode toggle).

lelandfe 12/21/2025||
> used much less JS

The homepage loads 9.7kB of JS. Navigating to every single link in the main nav results in no additional JS being loaded.

The site is fine.

spiralganglion 12/21/2025|||
This page doesn't need JS. It doesn't need a loading indicator for said JS. It could just be html and css, otherwise unchanged.
satvikpendem 12/21/2025|||
Sometimes people want things we don't need. It doesn't need Javascript but it allows certain nice to have features, like instantaneous page loads.
Alifatisk 12/21/2025||
> it allows certain nice to have features, like instantaneous page loads

Right, but I do not think this is the case here

self_awareness 12/21/2025|||
Home pages: Ruby 4.3mb, Python 1.3mb, java.com 2.1mb, raku.org 360kb, typescript 2.1mb
lelandfe 12/21/2025||
Yeah but them's highway miles. I have much less care about a site loading images than the stuff that makes the mobile nav work. Images are pretty!

For instance, here's Python's 144kB JS-powered homepage mid-load: https://imgur.com/a/OvYVAMS

And theirs doesn't even have any pretty images! That said, Ruby really ought to give those images a compress.

satvikpendem 12/21/2025|||
I like instantaneous page loads after the initial first page load, which is what the JS does here. Hard to do so without it.
bmacho 12/21/2025|||
I don't think that JS does any preloading. When I open the front page and I click somewhere it loads normally for me, and it downloads the whole page content, after my click (desktop, Firefox).
lieuwex 12/22/2025||||
I don't see what JS code would provide this?
troupo 12/21/2025|||
wat
bmacho 12/21/2025||
Darkmode toggle can be (and usually is) achieved by CSS.
Alifatisk 12/21/2025||
And the state of it persist across page loads or tabs?
bmacho 12/21/2025||
No. It might, depending on what your browser does, but it's not in the web standard.

But you can have a button that saves your state when you enable javascript, and doesn't save your state (but still works) when you disable javascript.

edit: I think it is possible to save your state on the second click. So the UX is: you have 3 options with a slide. You click one of them, the page theme changes, and the option icon becomes a padlock. You click on it again, and the option is saved.

It seems to be a limitation that without javascript a single click can't change a switch and do something else--make a request to set a cookie. But you can do changing style on first click, then setting a cookie on the second. Here's a demo (written by Claude) (it doesn't work without server, just the HTML part) https://jsfiddle.net/r134vgo7/3/

elcapitan 12/21/2025||
Meta, but it's kind of ironic that the main Ruby language website shows a "0%" Ruby symbol with javascript deactivated, and doesn't even show the code examples, which are all just links to some sandbox anyway.
chrisandchris 12/21/2025|
It annoys me so much when developers think they can do it better and link with JavaScript. Interactions (like opening a dialog) witj JS - yes. Navigating to sites/positions in-site - that is just dumb. So many pages break the "open in new tab" behaviour with this implementation.
hessart 12/21/2025||
Maybe it was vibe coded, considering that Claude is the #3 committer in the website's repo[1].

[1] https://github.com/ruby/www.ruby-lang.org/graphs/contributor...

Alifatisk 12/21/2025|
Claude is on the list because some commits by users have "Co-Authored-By: Claude ...". Does not necessarily have to be vibe coded.
aristofun 12/21/2025||
I don't know what others are complaining about here, it loads for me as fast as this HN, but looks nicer.
mabedan 12/21/2025||
Loading percentage in the middle? I haven’t seen one of those since Micromedia flash days.
mrcwinn 12/21/2025|
Macromedia!
librasteve 12/21/2025|
I thought it would be interesting to try the showcase examples in Raku (since I am always saying how good Raku's imitation of Ruby is)...

  - https://glot.io/snippets/he42jpfm27
  - https://glot.io/snippets/he42trx6w6
  - https://glot.io/snippets/he434b6ryj
Obviously Raku leans more to `{}` and `my $var` than Ruby - but otherwise I think it does a credible job. Obviously these are carefully chosen Ruby snippets to highlit its unique abilities in strings, "array math" and classes. On the string interpolation, I would say that Raku has the slight edge (and has the whole Q-slang for a lot of fine grained control). On the array math, I had to apply the (built in) Raku set diff operator ... so I guess that Ruby is a little more natural for this (rather quirky) feature. On the class stuff, again very close. Raku has much more powerful OO under the hood ... multi-inheritance, role-composition, punning, mixins, MOP, and yet is a delight to use in this lightweight way.
yawaramin 12/22/2025||
For fun, I did the same for OCaml:

Ex 1

    let say = "I love OCaml"
    let () = print_endline say

    (* Requires linking in the 'str' library *)
    let say = Str.replace_first (Str.regexp {|\(.*\)love\(.*\)|}) {|\1*love*\2|} say;;
    let () = print_endline (String.uppercase_ascii say)

    let () = ignore |> Seq.init 5 |> Seq.iter (fun () -> print_endline say)
Ex 2

    module StringSet = Set.Make(String)

    let cities = StringSet.of_list [
      "London";
      "Oslo";
      "Paris";
      "Amsterdam";
      "Berlin";
    ]
    let visited = StringSet.of_list ["Berlin"; "Oslo"]

    (* Requires the 'fmt' library *)
    let string_set fmt v = Fmt.Dump.list Fmt.string fmt (StringSet.to_list v)

    let () =
      Format.printf "I still need to visit the following cities: %a\n"
        string_set
        (StringSet.diff cities visited)
Ex 3

  module Greeter : sig
    type t

    val make : string -> t
    val salute : t -> unit
  end = struct
    type t = { name : string }

    let make name = { name = String.uppercase_ascii name }
    let salute t = Format.printf "Hello %s\n" t.name
  end

  let g = Greeter.make "world"
  let () = Greeter.salute g
Obviously, OCaml is a much lower-level language than Ruby or Raku–notably, regex support is not as great, and we have to explicitly tell it how to print values of custom types. Still, I find its lack of syntax sugar makes it easy to read nearly any OCaml code I come across in the wild!
christophilus 12/21/2025||
Man. Haven’t thought about Raku for a while. Does it have a good web framework these days?
librasteve 12/22/2025|||
The leading web framework for Raku is Cro (https://cro.raku.org) . Cro has deep support for distributed architectures and middleware pipes and a nice templating language.

  my Cro $service; # geddit?
There are others, notably the more lightweight Humming-Bird https://raku.land/zef:rawleyfowler/Humming-Bird

Also, if you want a more opinionated, HTMX centric web application library, then https://harcstack.org was used to make the new https://raku.org site

yawaramin 12/22/2025||||
See https://rakujourney.wordpress.com/2025/03/30/the-harc-stack/
librasteve 12/22/2025|||
that’s a name I haven’t heard in a while
More comments...