FreshBSD 2021

6 weeks ago I created a branch for a significant rework of FreshBSD. Nearly 300 commits later, and just a week shy of our 15th anniversary, the result is what you’re looking at now. I hope you like it.

There’s loads of internal changes, but here’s the main user-facing stuff:

Improved Look

We have a new vector logo I knocked together in Inkscape, a new drop-down select library, a new pagination widget that offers to reverse the sort order rather than encouraging you to visit page 170,000, and a variety of style tweaks to (hopefully) make things a bit nicer.

Prettier URLs

The site has a new URL scheme, and a much better system for generating them from queries. Where possible they’ll be automatically applied using JavaScript to make sharing links more pleasant. For example, this monstrosity:

/search?q=&project%5B%5D=freebsd&repository%5B%5D=src&branches%5B%5D=releng%2F12.0&sort=commit_date

Becomes:

/freebsd/src/branch/releng/12.0

Old URLs should continue to work.

Use the Source

A new grouped Source filter replaces Project and Repository, making it much easier to go straight to the repositories you’re interested in.

There’s also a new filter for merge commits, though this currently only works for git-based repositories.

More Speed

According to PageSpeed Insights:

  • Old front page: 4,814 DOM elements, 148 KiB, 2.3s to interactive.
  • New front page: 1,616 DOM elements, 37 KiB, 0.5s to interactive

This is a combination of improvements, including:

  • Removal of jQuery and Font-Awesome’s WebFont/CSS
  • Branch/tag/committer filters being suppressed
  • Result counts and aggregations calculated in the background during rendering
  • Multithreaded commit rendering
  • Reduction in per-page results from 50 to 30
  • Improved caching, with a warmup query for the front page on index updates

More to Come

I’ve done a lot of work to improve the quality of the code, which in turn makes further changes easier and more appealing. This also brings us closer to the point at which I’ll be comfortable publishing the codebase.

In the mean time, I hope you continue to find the site useful. If you have any feedback, please email me at tom@hur.st, or Tweet me at @blaagh.

Cheers.