⚡ Sangsakala Proxy 🏠 Home
Skip to content

Visual redesign: new hero/nav/footer, PicoCSS styling, refreshed copy - #63

Open
johngallagher wants to merge 10 commits into
jruby:masterfrom
johngallagher:redesign-2026
Open

johngallagher wants to merge 10 commits into
jruby:masterfrom
johngallagher:redesign-2026

Conversation

@johngallagher

@johngallagher johngallagher commented Jun 18, 2026 •

Copy link
Copy Markdown

Summary

This is a proposal to refresh the look of jruby.org, prototyped first at johngallagher/diamond and ported here. Per the README's note to consult before large changes, I'd like this to be a starting point for discussion rather than something to merge as-is. I'm happy to iterate or narrow the scope based on feedback.

The site deploys from master through GitHub Pages, so merging this puts it live straight away.

View the before-and-after comparison: 27 pages side by side, at desktop and mobile widths.

What changed

  • Design: every page now uses a new layout, nav, and footer, built on a locally vendored PicoCSS (classless) and a new stylesheets/style.css. The old main.css, carousel.css, ie7-hacks.css, and Typekit font loader are no longer referenced, but are still on disk.
  • Home page: a new hero with the JRuby logo, an enterprise support banner, feature cards, the five latest news items, and Quick Links.
  • Nav: Download, Get Started, Documentation, Chat, Community, Security, News, and Blog, with a hamburger menu at 960px and narrower. The nav also uses the logo.
  • Download page: release tables driven by a new releases list in _config.yml.
  • Content: refreshed copy on getting-started, documentation, community, contribute, security, blogs, chat, and news. nightly gets a new warning box and a reporting section, and keeps its existing links.
  • Link previews: a share image, Open Graph and Twitter card tags, canonical URLs, and page descriptions.
  • Accessibility: a keyboard-operable mobile menu, a skip link, visible focus styles, one h1 per page with no skipped heading levels, and labelled landmarks. Wide code blocks and tables scroll within the page on phones.
  • SEO: a new sitemap.xml, better titles for the home page and old download pages, structured data on the home page and release posts, and internal links that match the canonical URLs.
  • robots.txt: allows all crawlers, including AI search and training, and points to the sitemap.

Removed: please check these

These match the prototype, but you may want to keep some of them:

  • Home page: the Mastodon timeline, the Engine Yard hosting credit, and the version number in the hero. The InfoWorld Bossie award is now a short note in Quick Links.
  • Download page: MD5 and SHA1 links, the jruby-jars gem link, and the Windows checksum links. The x64 .exe.sha256 links I tested return 404, and I didn't test the non-x64 ones.
  • Nav: Home. Blog and Chat are still there.
  • Community page: the Twitter card, so /twitter is no longer linked from there.
  • Chat page: the link to the Matrix logs.
  • Code blocks: coloured syntax highlighting, because syntax.css is no longer loaded.
  • 404 page: the old image. The page now has a short message linking to this repo's issue tracker.

Things to review

  • Release automation: change_versions_in still rewrites versions in _config.yml and download.html. download.html no longer contains version strings, because it builds from releases, and it looks up each release's date and notes link from its post. The file sizes in releases are approximate and won't update automatically. I simulated the version replacement but haven't run a real release.
  • Release posts: I kept this repo's posts rather than the prototype's placeholder content. Three posts had heading levels changed (10.1.0.0 and two from 2012), with no wording changes. The post layout also promotes headings in posts that skip a level.
  • Old download pages: most of this PR's file count is here. All 171 got one-line link changes, and five also had a Layout key fixed to layout.
  • Analytics: the existing Google Analytics snippet is unchanged. It uses ga.js and a UA- ID, which Google stopped processing in 2023, so you may want to replace it separately.

Unchanged

  • Favicons and PWA: site.webmanifest, browserconfig.xml, and the existing favicon and touch icon images.
  • Other files: Rakefile, cookbooks/, conf/, config.ru, patches/, templates/, apidocs/, CNAME, .htaccess, atom.xml, and Gemfile.
  • Old assets: old stylesheets/, javascripts/, and images/ stay on disk even where unreferenced, because a few old posts embed images directly and there may be external hotlinks. I'm happy to clean these up in a follow-up if you prefer.

One thing to flag explicitly

The footer now includes a "Professional Support" link to Headius Enterprises, and the home page has an enterprise support banner linking to Headius. The footer link was coordinated directly with the Headius team beforehand. I'm flagging both so they're not a surprise in review.

Test plan

  • bundle exec jekyll build succeeds. The Layout 'nil' requested in atom.xml warning and the server_port deprecation notice come from existing config, not this PR.
  • axe-core reports no violations on all 356 HTML pages (excluding the apidocs redirects) at 1280px and 390px.
  • No page scrolls sideways at 390px.
  • All download links on download.html returned 200 when I last checked them.
  • Keyboard test: Tab reaches the skip link and the mobile menu, Space opens the menu, and the skip link moves focus to the main content.
  • Screenshots of a 27-page sample reviewed at desktop and mobile widths, from thumbnails showing the top of each page.
  • Not tested with a real screen reader.
  • Link previews and sitemap can only be fully checked once live on www.jruby.org, for example with Facebook's Sharing Debugger and Google Search Console.
  • Would appreciate a maintainer checking the release flow on a real release.

🤖 Generated with Claude Code

johngallagher and others added 10 commits June 18, 2026 23:07
Ports a community-built visual redesign (prototyped at
github.com/johngallagher/diamond) onto the existing site structure.

- Vendors PicoCSS classless + a new style.css, replacing main.css/
  carousel.css/ie7-hacks.css and the Typekit font loader.
- Restyles menu/banner/release/footer includes and the main/home/post
  layouts; all existing nav destinations, the release widget, the
  Recent News/Recent Toots (Mastodon)/Awards/Engine Yard sections on
  the homepage, and Google Analytics tracking are preserved, just
  restyled.
- Refreshes prose on getting-started, documentation, community,
  contribute, security, and blogs. Left nightly/chat untouched since
  their existing copy is more current than the prototype's.
- download.html and _config.yml are untouched apart from added CSS
  wrapper divs around each release block -- the exact version/URL
  text that rakelib/release.rake's change_versions_in substitutes on
  every release is preserved byte-for-byte (verified by diff).
- Adds an authorized Headius Enterprises support banner/footer link
  (coordinated directly with the Headius team).
- Leaves old stylesheets/, javascripts/, and images/ in place
  unreferenced rather than deleting them, since some images are
  embedded in historical posts and external links may target them.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Resolve conflicts in download.html and index.html by keeping the
redesigned markup and taking upstream's 10.1.2.0, 10.0.7.0 and Ruby 4.0
release content.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Move all pages onto diamond's layouts, nav, footer and stylesheet, and
replace the home page's version heading with the JRuby logo.

- Add a default layout; main and post now extend it, dropping the old
  page banner and release widget
- Rebuild download, news, chat and community from diamond
- Drive the download page from a releases list in _config.yml, keeping
  current versions and URLs; dates and notes links come from the posts
- Keep this repo's release posts, nightly links, feed and licence text,
  which are more accurate than diamond's
- Fix the capitalised Layout key on five old download index pages

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Shorten "Getting Started" to "Get Started" in the nav, and start the
hamburger menu at 960px so the longer nav never overflows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replace the nav's text brand with a small version of the white logo.

Stop long inline code and wide tables stretching pages on phones, and
fix a broken link on the GSoC page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add a share image, Open Graph and Twitter card tags, canonical URLs and
page descriptions, so shared links show a title, summary and image.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Accessibility:
- Make the hamburger menu keyboard operable and add a skip link
- Add focus rings for the logo and scrollable code blocks and tables
- Give every page one h1 with no skipped heading levels
- Put all home page content inside labelled landmarks

SEO:
- Add a sitemap and point robots.txt to it
- Improve the home page title and the old download page titles
- Add structured data to the home page and release posts
- Make internal links match the canonical URLs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Welcome AI search and training crawlers, signal that with
Content-Signal, and keep the sitemap reference.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Remove the old image, shorten the message, and link to this repo's
issue tracker for reporting broken links.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add "Get started at jruby.org" to the share image.

For local development, compress responses to match GitHub Pages, and
add PREVIEW_DOMAIN so link previews can be tested through a tunnel.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant