Remix.run Logo
Ruby website redesigned(ruby-lang.org)
358 points by psxuaw 18 hours ago | 126 comments
kshahkshah 11 hours ago | parent | next [-]

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 7 hours ago | parent [-]

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_ 2 hours ago | parent [-]

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.

Kwpolska 15 hours ago | parent | prev | next [-]

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.

librasteve 9 hours ago | parent | next [-]

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!

tempaccsoz5 4 hours ago | parent | next [-]

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/

troupo 8 hours ago | parent | prev [-]

> 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 6 hours ago | parent [-]

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 5 hours ago | parent | next [-]

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 5 hours ago | parent | prev [-]

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.

MrJohz 13 hours ago | parent | prev | next [-]

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 7 hours ago | parent [-]

> 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 hours ago | parent | prev | next [-]

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 11 hours ago | parent [-]

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 9 hours ago | parent [-]

[matrix voice]

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

mb2100 9 hours ago | parent | prev | next [-]

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 9 hours ago | parent | prev [-]

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 9 hours ago | parent [-]

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 9 hours ago | parent [-]

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 13 hours ago | parent | prev | next [-]

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 13 hours ago | parent [-]

> 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 hours ago | parent [-]

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.

azangru 12 hours ago | parent [-]

> Similarly for header-navigation and theme-toggle

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

bmacho 11 hours ago | parent | next [-]

It's possible to have a 3-states CSS switch/slider that controls site theme. Google it or ask AI assistant.

Elfener 11 hours ago | parent | prev | next [-]

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 10 hours ago | parent | next [-]

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 11 hours ago | parent | prev | next [-]

> 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 10 hours ago | parent | prev [-]

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 5 minutes ago | parent [-]

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.

jarek83 11 hours ago | parent | prev [-]

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 4 hours ago | parent [-]

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.

continuational 16 hours ago | parent | prev | next [-]

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 7 hours ago | parent [-]

"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 6 hours ago | parent [-]

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?

Alifatisk 12 hours ago | parent | prev | next [-]

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 hours ago | parent | next [-]

> 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 9 hours ago | parent | next [-]

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 8 hours ago | parent [-]

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 7 hours ago | parent [-]

> it allows certain nice to have features, like instantaneous page loads

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

self_awareness 3 hours ago | parent | prev [-]

Home pages: Ruby 4.3mb, Python 1.3mb, java.com 2.1mb, raku.org 360kb, typescript 2.1mb

lelandfe 2 hours ago | parent [-]

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 9 hours ago | parent | prev | next [-]

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 7 hours ago | parent | next [-]

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

troupo 8 hours ago | parent | prev [-]

wat

bmacho 11 hours ago | parent | prev [-]

Darkmode toggle can be (and usually is) achieved by CSS.

Alifatisk 7 hours ago | parent [-]

And the state of it persist across page loads or tabs?

bmacho 7 hours ago | parent [-]

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/

hessart 8 hours ago | parent | prev | next [-]

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 7 hours ago | parent [-]

Claude is on the list because some commits by users have "Co-Authored-By: Claude ...". Does not necessarily have to be vibe coded.

adsteel_ an hour ago | parent | prev | next [-]

It looks great, but it's missing the one thing I want most in the site - the ability to select the version of the language documentation in some way other than editing the URL directly. I use ruby-lang almost exclusively for the documentation.

I also wish the documentation search parameter were saved in the URL. This would allow people to create a custom Chrome search engine like @ruby and dramatically speed up doc searching.

librasteve 8 hours ago | parent | prev | next [-]

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.
christophilus 3 hours ago | parent [-]

Man. Haven’t thought about Raku for a while. Does it have a good web framework these days?

jelder 35 minutes ago | parent | prev | next [-]

Haven’t seen a loading progress spinner on a landing page in a while. The Ruby website now loads almost as slowly as Ruby on Rails boots up.

aristofun 11 hours ago | parent | prev | next [-]

I don't know what others are complaining about here, it loads for me as fast as this HN, but looks nicer.

mabedan 13 hours ago | parent | prev | next [-]

Loading percentage in the middle? I haven’t seen one of those since Micromedia flash days.

mrcwinn 10 hours ago | parent [-]

Macromedia!

elcapitan 17 hours ago | parent | prev | next [-]

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 17 hours ago | parent [-]

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.

novoreorx 14 hours ago | parent | prev | next [-]

Refreshing and delightful! I know how the home page looks doesn't reflect the programming itself, but this design really makes me want to try Ruby again :)

latexr 14 hours ago | parent [-]

> I know how the home page looks doesn't reflect the programming itself

It does reflect what the language creators pay attention to. Way back when, when I was undecided between learning Python or Ruby, after visiting countless resources I noticed Ruby websites in general looked way nicer and clearer than Python websites, so I picked Ruby. Now, years of experience with both languages later, I have zero doubt that to me that was the right choice at the time. I would’ve been frustrated with Python to no end.

I no longer need either language regularly, but given the choice again I would not hesitate to go for Ruby.

All that said, I do agree with some other comments on the thread regarding the disappointing reliance on JavaScript here. Should just be static.

omoikane 3 hours ago | parent | prev | next [-]

I see that this coincides with Ruby 3.4.8 release[1]. I wonder we will get another Ruby release on 2025-12-25, since Ruby has made a Christmas day release for 13 consecutive years[2].

[1] https://www.ruby-lang.org/en/news/2025/12/17/ruby-3-4-8-rele...

[2] https://www.ruby-lang.org/en/downloads/releases/

weaksauce 2 hours ago | parent [-]

yeah it will be ruby 4.0

Hackbraten 14 hours ago | parent | prev | next [-]

I wonder why Sandi Metz is missing in the testimonial section. One of the most influential persons in software analysis and design in the Rubyverse.

busterarm 11 hours ago | parent | next [-]

Sandi is also "moderately retired" -- hasn't done a speaking engagement in 5 years -- a blog post in longer...

Sometimes it's nice to just let people rest and get on with life.

rpdillon 12 hours ago | parent | prev [-]

Had the same exact thought. That DHH was included and Sandy was not really surprised me.

ecshafer 3 hours ago | parent | next [-]

DHH is the lead developer of the most popular ruby web framework, Sandy is the author of a mildly popular book. Not knocking her work, but DHH is magnitudes more influential.

jrochkind1 10 hours ago | parent | prev | next [-]

I think dhh's quote just isn't very good -- of course someone who has so much identity invested in the ecosystem is going to say "I looked around and still nothing is better than ruby!" Well maybe not even of course, not even every "BDL" is as cringingly self-promotional as dhh, some have a bit of humility.

i agree it's not a great look.

Hopefully the website will keep getting regularly updated and tweaked (software, is a living organism!), instead of being frozen in amber for a decade like the last version!

tovej 7 hours ago | parent | prev [-]

Yeah, DHH's inclusion is not a good look. Apparently people in this thread are upset that people are pointing that out?

Why would you want someone known for political hijinx and hateful speech as your face? How is that supposed to draw in new people?

zaitsev1393 6 hours ago | parent | prev | next [-]

I don't get the people who complain about the website not working with disabled js. Maybe I miss something and a large part of users disable / have js disabled in their browsers for some reason? Why the target audience of the ruby, probably primary web developers, whould do that? Or is this a some kind of secret handshake so community accept you (to build a website that can work with no js)?

ttepasse 4 minutes ago | parent | next [-]

Back in the 2000s in the web standards development community there were multiple web development strategies called "progressive enhancement", "graceful degradation" and "unobtrusive javascript":

https://en.wikipedia.org/wiki/Progressive_enhancement

There were a lot of practical reasons for that: The browser landscape was much more diverse, different browsers had different support of standard Javascript, some browsers didn't even support JS and some people still kept text-only browsers like lynx/links in mind. Also browsers were not evergreen, so a large part of the audience could be on some older versions. Another thing were sometimes brittle network connection, especially over mobile. Depending on JS could in the case of corruption mean non-functioning websites.

For a lot whose exposure to web development and the discussions abound that, that reason will be stuck in their head, even if in the last decade of React ets the "best practices" will have changed.

There is also an aesthetic thing: There is a thing of beauty in simply curling an url and piping it into grep or such to get the thing you need, instead of having so have an headless browser. In my mind that is still how the web should work.

paradox460 4 hours ago | parent | prev | next [-]

It's become a bit of a shibboleth to have js disabled, and brag loudly about how that breaks much of the Internet. It's a weird form of nerd signaling

MyOutfitIsVague 6 hours ago | parent | prev [-]

It's a common philosophy for developers with standards of robustness and accessibility to not hard depend on js for things that don't need js to function.

> Why the target audience of the ruby, probably primary web developers, whould do that?

In my experience, it's mostly web developers who care about this in the first place.

azuanrb 4 hours ago | parent | next [-]

> mostly web developers who care about this in the first place.

I’m not sure what you mean by this. We care about our users and how they use our websites. JavaScript is everywhere and has been the de facto frontend standard for the past few years. Supporting no-JS is starting to feel like supporting a new browser. As much as I’d like to, from a business and product point of view, the numbers are just too small for us to even consider it.

zaitsev1393 3 hours ago | parent | prev [-]

I can understand the aspiration to have the system that can be run from the lowest level out of box tools, but then, I am doing frontend for almost a decade and this is porbably the first time I'm seeing such attention to this specific 'no js' use case, as in this thread.

Maybe I'm not reading enough webdev forums. I agree though that things that don't required js should be written in no js way.

djoldman 9 hours ago | parent | prev | next [-]

Is there a manifesto out there saying that one should build with html and only if needed add css then svg then js?

It seems this site doesn't work so well without JS.

InsideOutSanta 9 hours ago | parent [-]

I think this is the first time I've seen a website where the download button, which is just a link, requires JavaScript to render.

ifndbdb 15 hours ago | parent | prev | next [-]

wow that loads slow

I like the design and content. Being able to immediately try a language online is huge

But there has to be a way to load that content in a progressive manner. Loading a static version first and then hydrating the content if you need interactive actions

monooso 10 hours ago | parent [-]

It's as fast as HN for me.

DetroitThrow 5 hours ago | parent [-]

If you break out the Lighthouse perf score it's more visible. It's between 2 and 3 orders of magnitude slower than HN for me.

yoan9224 8 hours ago | parent | prev | next [-]

The site looks great visually but the technical implementation is disappointing. Here's what's wrong:

1. Code examples are fetched via JS instead of being in the HTML. They're static text - there's zero reason for this.

2. The "0%" loading spinner blocks everything. It's literally just displaying a download button and some text.

3. With JS disabled, you get nothing. A language website should be the poster child for progressive enhancement.

The irony is that Ruby itself has always emphasized developer happiness and doing things "the right way." This site feels like it was built with the modern JS framework mindset rather than the Ruby philosophy.

Still, huge improvement over the 2005-era design. Just wish they'd optimized it properly.

Syzygies 17 hours ago | parent | prev | next [-]

Nice! There is a Japanese feel to the lead graphic, their prevalence of cartoon imagery, that one might not recognize without having traveled in Japan.

Is the design debate public? I'd imagine it would make great reading.

lloeki 17 hours ago | parent [-]

The top right character definitely looks like Matz!

sergiotapia 23 minutes ago | parent | prev | next [-]

I've been building internal tooling using Ruby and Rails for the company I work at.

It's been such a blessing to be able to leverage these tools.

Ashby API? Gem for that.

Airtable API? Gem for that.

Rich text editor in CRUD form? Rails got you.

PDF previews? Gem for that.

Pagination? Gem for that.

I just blitz through so many features and tools the productivity is INSANE. I would not have able to produce 10% of what I did if I had chosen nextjs or whatever flavor of the month react framework there is.

I sincerely believe that Rails + Claude make nocode tools like n8n or retool irrelevant to most use cases.

yoan9224 an hour ago | parent | prev | next [-]

The visual refresh is great, but the technical implementation is disappointing. Code examples are static text fetched via JavaScript instead of being in the HTML. With JS disabled, you get a frozen "0%" loading screen.

This is ironic because Ruby has always emphasized doing things "the right way" and developer happiness. A language website should be a poster child for progressive enhancement - especially one that champions elegance and proper practices.

Still, huge improvement over the 2005-era design. Just needs optimization work to align the implementation with Ruby's philosophy.

jrochkind1 10 hours ago | parent | prev | next [-]

So much better. The website was looking like abandonware, which was not helpful in projecting ruby as an actual thriving ecosystem.

t1234s 8 hours ago | parent | prev | next [-]

I'm glad to see they didn't use wordpress.

Hendrikto 12 hours ago | parent | prev | next [-]

Very form over function, with JS for everything, including static content, and bad performance. This signifies what’s wrong with “modern” webdev.

tiffanyh 10 hours ago | parent | prev | next [-]

The old site as a comparison.

https://web.archive.org/web/20251113164224/https://www.ruby-...

InsideOutSanta 9 hours ago | parent [-]

That's certainly less fancy and looks outdated, but it's a lot more functional.

unethical_ban 7 hours ago | parent [-]

Outdated meaning not flashy, but the layout is great. Here's what this is, here is are news, here's all the resources you need to get started.

mindaslab 10 hours ago | parent | prev | next [-]

Feels like base camp website.

mkl95 13 hours ago | parent | prev | next [-]

The Lighthouse report is telling. It scores 100% for Best practices and SEO, but 54% for Performance. Pages like these used to be caricatures of the modern web, but are now acceptable. DHH's statement doesn't help either.

mabedan 13 hours ago | parent | next [-]

I dreaded the thought of scrolling down because I knew I’m gonna stumble upon his face.

prh8 5 hours ago | parent [-]

the only thing his statement was missing was thank you for your attention to this matter

lelandfe 8 hours ago | parent | prev [-]

Honestly, the synthetic Lighthouse tests would be great but for the fact that they're using Google Fonts. It's like the only major thing in their critical path.

weiwenhao 14 hours ago | parent | prev | next [-]

Very nice, my nature-lang references the old ruby design, now maybe I can reference the new one.

troupo 17 hours ago | parent | prev | next [-]

So, in order to show a single download link it needs to load an animation with visible loading progress even on a gigabit connection. It takes a few seconds to appear. All to show a scaling animation that can be achieved with a couple of lines of CSS.

Same for absolutely static code examples that take a few seconds to load and shift the content away.

Why?

sixtyj 16 hours ago | parent | next [-]

You are a rare species, on the verge of extinction.

Unfortunately, most people today probably don't care about what you're talking about. (I do, but I've decided not to comment on it anymore, because it would probably drive me crazy :)

0x073 14 hours ago | parent [-]

The site is for developers and most of the rare species are developers.

The designer fail to target their audience.

dijit 13 hours ago | parent [-]

Ruby is not targeting those kind of developers though.

It's C/C++ developers that typically prefer a no-fluff approach.

pjmlp 13 hours ago | parent [-]

As polyglot developer, I am also for a no-fluff approach and vanilajs for the win.

One of the reasons Next.js is attractive to me, is exactly they have rediscovered why so many of us have stayed with SSR.

christophilus 12 hours ago | parent [-]

> no-fluff … Next.js

Hmm. We can agree to disagree on the definition of fluff.

pjmlp 11 hours ago | parent [-]

Sure, if you ignore the SSR and SSG part, which sadly most nodejs stuff lacks.

Additionally, Next.js should only be used when SaaS product vendor doesn't allow for any other option, which sadly is the case when making themselves sellable to magpie developers, while riding VC money until the IPO takes off.

I rather deliver, than do yak shaving, but at least can deliver only HTML and CSS if I chose to.

timeon 16 hours ago | parent | prev [-]

> couple of lines of CSS

This is bit too much to ask. Just check the source it is swollen with Tailwind.

troupo 16 hours ago | parent [-]

Tailwind maps directly to CSS (well, it is pure CSS) and doesn't require a loading progress for a one-line animation: https://tailwindcss.com/docs/animation

timeon 16 hours ago | parent [-]

Sure but if someones duplicates 50x this:

> flex-shrink-0 transition-transform duration-300 hover:scale-105 w-[160px] h-[144px] 2xl:w-[200px] 2xl:h-[180px]

just to avoid CSS, not sure they would bother with CSS animation.

zhisme 15 hours ago | parent | prev | next [-]

Well well well. Now can we stop arguing about ruby death? It is even got a site redesign! What a fresh look. Previous design was from 2005?

mindaslab 10 hours ago | parent | prev | next [-]

Lol, it does not load when JavaScript is disables. I wonder if Ruby still sticks to Free Software principles.

mindaslab 10 hours ago | parent | prev | next [-]

Looks like base camp website.

ModernMech 7 hours ago | parent | prev | next [-]

The number of times Matz is mentioned and depicted on the homepage is offputting. MINASWAN feels too close to WWJD for me. I can't think of another programming language community that does this, and I'm including Wolfram in that assessment.

hit8run 13 hours ago | parent | prev | next [-]

Ruby is GOATED. You can say what you want but Ruby coupled with Rails is the most productive web stack period.

Why you might ask? - Omakase Stack - high level is good for business processes - modern concepts without JS ecosystem churn - great testing capabilities - great ecosystem - highly effective stack for LLMs (conventions)

Is it fast in Benchmark Games - not by any means. Will you be able to finish projects and make money with it? Absolutely.

Someone 13 hours ago | parent | prev | next [-]

On my iPad, without scrolling, the screen shows almost nothing, just a download button and some text that, I think users will ignore. I think that’s a waste of valuable screen estate.

Also, apart from a quote from David Heinemeier Hansson the home page doesn’t even mention that ruby is a programming language.

For comparison, the following all mention that above the fold, with a short phrase indicating what you would want to use the language.

- https://www.python.org/ has “Python is a programming language that lets you work quickly and integrate systems more effectively. Learn More”

- https://www.perl.org/ has “Perl is a highly capable, feature-rich programming language with over 37 years of development”

- https://www.php.net/ has “A popular general-purpose scripting language that is especially suited to web development. Fast, flexible and pragmatic, PHP powers everything from your blog to the most popular websites in the world.”

- https://www.swift.org/ has “Swift is the powerful, flexible, multiplatform programming language. Fast. Expressive. Safe.”

asmor 10 hours ago | parent | prev | next [-]

DHH praising himself in the testimonials, funny.

rubiii 12 hours ago | parent | prev | next [-]

Putting DHH right next to Matz must be some kind of sick joke

Arubis 10 hours ago | parent [-]

Quickly followed by folks talking about a warm and welcoming community. Which in fairness, is true! DHH is the counterexample. Platforming him in 2025 seems nonsensical.

TrappedInCorner 5 hours ago | parent [-]

Why is platforming him in 2025 nonsensical?

prh8 5 hours ago | parent [-]

platforming him at all is nonsensical if you want to claim to have a kind and/or welcoming community

self_awareness 5 hours ago | parent | prev | next [-]

I really wanted to like Ruby, but the ecosystem is just... broken.

Comparing to Python, where virtualenv is de facto default, and pyls works by default, the experience with Ruby is not that great.

New website looks like a website for a startup project that will be closed in 2 years.

prh8 5 hours ago | parent [-]

What is broken in your mind? What things did you have a "not that great" experience with? There are de facto standards and defaults in Ruby as well.

self_awareness 5 hours ago | parent [-]

Well, for starters, I never got LSP to properly work with Ruby at the same level as other languages, i.e. so it's possible to browse the standard library.

azuanrb 4 hours ago | parent [-]

Which LSP are you using? I'm using both solargraph and ruby-lsp and both works fine by me (in neovim).

Although those who really care about LSP support usually will use RubyMine IDE instead. Some of my colleagues are going that route, and they're mostly coming from Java (or similar background)

self_awareness 3 hours ago | parent [-]

I'm not really "using it", I'm just trying every now and then, and I keep encountering errors, hangups, and lack of functionality. Now I've tried ruby-lsp, and it just sits there on "Starting Ruby LSP...\n"

Couldn't even install Solargraph, once it errors out with 'Kernel#require': cannot load such file -- yard, other time it installs, but "solargraph scan" fails in runtime with "missing gem date" error.

Sorbet doesn't even work in VSCode, some bugs are over 5 years old.

But yeah, downvote my original post, because apparently all of the above is obviously my fault.

RubyMine was paid until recently, now it's free only for non-commercial use. It's also not really suitable for small scripting.

Historically, one insanely huge advantage of Ruby was that it was pre-installed on macOS'es, but I think they've stopped doing that since some macOS version.

artursapek 11 hours ago | parent | prev | next [-]

not a serious language, not a serious website. very fitting

replwoacause 6 hours ago | parent [-]

Really? I thought GitHub and Shopify used it. Hard to imagine billion dollar companies choosing an unserious language to power their businesses.

pmkary 10 hours ago | parent | prev | next [-]

I loved the old website. It was one of the few "good old things" I used to check out when I got nostalgic. What a waste...

auxide 12 hours ago | parent | prev [-]

This is just straight-up unappealing, really gaudy, if that's the right word. Otherwise I can't put it into words well.