A healthy pulse from a decade of iteration.

Websites are software too. The foundations of this codebase go back to 2013, with 6 major releases, 19 minor updates and 188 service patches since. In total, there have been 645 changes across 213 production builds, deploying at a cadence of roughly every 3 weeks.

adds new Bento component
improves scroll behaviour of Release menu by containing overscroll
improves consistency of padding on Projects grid
fixes an issue that caused Release Menu pipe to be clipped
drops Cover component
adds lazy-loading to Contact menu map
adds external link support to Card component
improves reliability of Appearance conditioning
adds lastmod value to sitemap entries, replacing changefreq and priority
adds support for accent-color on native form controls
adds support for deleted text
improves appearance of Card component graphics
fixes an issue that caused Release Menu pipe to be invisible in Light Mode
drops cap at the end of Timeline
adds indication of current view to Me Menu
adds dynamic theme swapping when Cover image is present
adds new Card component
improves layout of Code view
improves Award component by merging into Card
improves border-radii site-wide by adopting smooth corners
improves accessibility and checked state indication of theme controls
improves visibility of Menu shadow in Dark Mode
improves Cover image implementation in Firefox
adds ability to supply a link to Award component
improves appearance of Menus by replacing border-radius and box-shadow with mask and filter
improves Menu animations
improves appearance of projects on small displays
fixes an issue where a bounding box would be visible on external link disclosures in Dark Mode
fixes rendering artefact on Menu containers
adds cap to the end of Timeline
improves appearance of Shot component by masking corners
fixes an issue where Increased Contrast wouldn't be respected for Cover image content
adds external link disclosure to Contact menu cells
fixes an issue rendering Release badge mask while a Cover image was present
improves flexibility of Projects grid
improves appearance of Testimonials on small displays
restores ability to define publish date as a range on Post
adds support for Cover images
fixes an issue that allowed unparsed markdown to appear in document titles
restores Tiles component
improves Code view by replacing Front-End Alphabet with featured Tiles
drops ability to indicate publish date as a range on Post
improves typography in Firefox by configuring font-optical-sizing and font-variation-settings
improves appearance of Contact menu in Firefox
improves appearance of Things view while content and UI are busy
fixes appearance of Ratings in Firefox
fixes appearance of SVGs with gradient backgrounds in Firefox
fixes issue where block titles may render two full stops on small displays in Firefox
fixes issue that caused Appearance and Accent controls not to indicate state in Firefox
improves consistency of beacons on Releases and Resume
fixes issue where end of Releases pipeline would not fade out correctly
adds scroll-snapping to Billboard
fixes a regression that caused some Post titles not to render
adds Code view
adds syntax highlighting to code blocks
adds ability to indicate publish date as a range on Post
adds ability to animate icons
improves appearance of Billboard when containing multiple images
improves baseline alignment of code samples
fixes alignment of theme control icons
fixes an issue where Chrome would scroll to the first focused element on load
fixes inconsistent text-decoration-thickness within Menu items in Safari
adds Permissions-Policy header
improves font definition via system-ui keyword
drops robots.txt file in favour of meta tag
adds ability to reset filtered Things view if selected from Menu
adds history support to Selector component
adds busy state indication to Selector component
fixes issue where Releases badge could flicker with each page load
adds a badge to Releases menu if there has been a release within 3 days
fixes issue where release dates could appear to change after JavaScript execution
drops relative datestamps
adds Rating, Testimonial, and Icons components
improves semantics of post information by wrapping in hgroup
improves UX of Appearance and Accent toggles
drops support for images in Features component
improves appearance of rounded corners by masking smoothly
fixes filter: drop-shadow() clipping issue in Safari
adds ability to mark a Post as updated
improves busy state of Release Pulse
improves rich preview fallback image
improves active state of theme controls
adds Colophon and Things views
adds new primary accent and ability to set accent preference via localStorage
adds Selector component
adds ability for Timeline events to be linked
adds support for multiple images within Billboard component
adds ability for Features component to take multiple icons
improves pop-out menu animation
improves appearance of Timeline events on small displays
improves appearance of project grid on mid-sized displays
improves legibility of project links
improves appearance of Billboard captions
improves busy state indication on pop-outs
improves consistency of colours site-wide
improves rendering of Donuts by masking—rather than overlaying—cut-out ring
improves legibility of article links
fixes a regression where Timeline event borders would overflow beyond bounds
adds map to Contact menu
improves hobby project padding consistency on small displays
fixes regression that caused favicon to return a 404
adds support for serving optimised assets based on device capability via srcset
improves rendering of images site-wide
fixes a regression causing polyline caps on Release Pulse to be clipped
drops hobby completion target
improves appearance of images on small displays by allowing them to extend edge-to-edge
improves simplicity of responsiveness by reducing number of breakpoints
improves discoverability of Resume view
fixes a regression on image lazy-loading
improves appearance of titles in Features component on small displays
improves products padding consistency on small displays
adds Billboard component to Design posts
adds Platforms component to Design posts
adds image support to Features component
improves placeholder blur-up technique when lazy-loading images
improves email icon
improves and simplifies Timeline layout code by changing from Flexbox to Grid
improves legibility of linked Products
improves alignment of Menu dividers
fixes appearance of text on iOS when in landscape orientation
drops the ability to redact products
fixes issue where some Menu items were unavailable due to misaligned breakpoint queries
adds new colour palette including swatches specifically for Dark Mode
adds a fourth colour stop to Release Pulse gradient
fixes an anti-aliasing issue on Releases menu
adds direct link to Releases view
improves spacing between Header and body on small displays
improves alignment of Releases menu with Releases view
fixes issue causing Releases menu to span full-width on some displays
adds new favicon, touch icons, mask icon, and Open Graph rich preview
adds new navigation Menu
adds new Releases view
improves animation by using 3D transforms to force hardware acceleration
improves alignment of pop-outs relative to document
fixes issue causing polyline caps on Release Pulse to be clipped
fixes issue where some UI icons could be cropped or offset in Safari if the viewport width had an odd pixel value
fixes alignment of Timeline cells
improves alignment of project grid items on Design and Hobby
fixes an issue that broke Hobby stat calculation if the view was rerendered
fixes regression on Increased Contrast accessibility preference conditioning
fixes regression on Reduced Motion accessibility preference conditioning
adds bespoke image handling for improved UX, security, and performance
improves CLS score by allowing aspect-ratio to reserve space for replaced elements
restores cache control headers
restores X-Frame-Options, X-Content-Type-Options, and Referrer-Policy security headers
drops Gatsby image handling
improves performance by using WebP for all image assets
adds new navigation Menu and simplifies Header
improves appearance of Contact menu on small displays
improves appearance of titles on small displays
drops post tags feature
adds completion value to Donut labels
improves appearance of carousels on small screens by hiding redacted products
fixes issue where some assets were being inlined rather than sourced
drops pulse animation from latest release badge
improves favicon, touch icons, mask icon, and Open Graph rich previews
improves shape of pop-out caret
improves appearance of pop-out contents on small displays
fixes regression on alignment of Menu items
improves appearance of Menu while handling picturemark
adds support for Increased Contrast
fixes regression on appearance of Donuts in Dark Mode
adds support for assigning tags to posts
improves appearance of Post component
improves appearance of pop-outs in Dark Mode
improves download speed of images
fixes pixel-snapping on Design product carousel assets
fixes issue causing line-height of code to differ from body content
adds ability for project carousels to wrap
fixes issue where Donut shadow would draw in the wrong direction
fixes issue with theme colour appearannce on iOS 15
adds completion rate to Hobby view
improves accuracy of hobby projections by calculating against latest snapshot instead of today
improves performance and reduces file size site-wide
improves contrast ratio of secondary text
improves indication of current view within navigation
drops Moment library for improved performance
adds support for image captions
improves UX by eliminating cumulative layout shift
improves load time of content by serving dynamic assets based on device capabilities
improves layout of Footer on small displays
fixes issue where a scrollbar could flash within Contact menu during animation
improves load time of UI by serving dynamic assets based on device capabilities
improves appearance of redacted projects
improves hobby completion date projection
improves margins around carousels while overflowing
adds Design product carousel
adds Hobby dashboard
improves indication of current view within navigation
fixes issue where some text would appear extra bold in Firefox
improves presentation on OLED displays by using pure black for background in Dark Mode
adds pre-filled subject line to mailto links
restores animation on pop-outs
improves accessibility of navigation items on very small displays
adds indication of current view to navigation
improves visibility and state handling of un-tinted links
adds new Contact menu
adds new Design and Hobby views
adds version number to Releases control
improves navigation layout
improves discoverability of email address for users without a native email client
improves UX of pop-outs by indicating interaction readiness
drops Timeline expand control
drops Tiles from Home
fixes issue where page metadata was not present on Post views
adds Post component
adds ability to go back to root of site from Menu
drops animation from Menu disclosure
drops animated :focus state in favour of more traditional outline approach
improves layout of Menu when expanded
restores pop-out caret
improves appearance of Tiles on small displays by making layout consistent
drops pending Tiles on small displays
adds keyboard focus state to all links and buttons
improves tabindex flow of all interactive elements
improves stylesheet simplicity site-wide
adds animation to Menu disclosure
improves position of Releases menu
improves appearance of buttons
improves appearance of pending Tiles
improves favicon, touch icons, and mask icon
improves colour palette
fixes issue where navigation would overflow on small displays
improves layout model of Timeline
improves appearance of Timeline expand control
fixes appearance of focus outlines in Chrome
fixes font-weight issue of Menu items in Firefox
fixes link formatting issue on 404 view
adds new site split between 51bits.com and csealey.com
adds new simplified, shared navigation
improves overall contrast of text, links, and line work
drops Work view
drops Photos view
fixes a package regression that caused the Release Pulse to render without a fill
improves truncation by migrating from deprecated word-break to overflow-wrap
fixes issue preventing first Release Pulse x-axis tick from rendering when new tick falls into scope
improves Release Pulse x-axis tick label overflow handling
improves pixel-snapping of Release Pulse x-axis ticks
improves appearance of navigation on small displays
adds support for links in Footer
adds new, simplified Work view
fixes an issue preventing Release Pulse plot from drawing to the edge
improves consistency of Timeline expand control with other links
fixes issue preventing upcoming year's Release Pulse x-axis tick from rendering
improves layout of Tiles on small displays
improves simplicity of navigation
improves appearance of Tile badges
fixes regression on image captions
improves styling of Timeline events
improves styling of Footer
fixes issue where Release Pulse x-axis ticks could overflow
drops highlighted events from Timeline
adds rich preview fallback image
improves rich previews by making thumbnail dynamic
fixes issue where 404 view did not include some metadata
adds Work view
adds support for image cells to span 1–3 columns or rows
improves appearance of image cells with fallback colour
fixes calculation error on relative timestamps within the past 2–7 days
adds support for Open Graph rich previews
improves appearance of Timeline expand control
improves presentation of recent releases with relative timestamps
improves styling of text-decoration on links
adds Footer
improves performance by loading extended Timeline events on demand
fixes issue where Timeline events could be ordered incorrectly
fixes layout jump when Timeline is expanded on small displays
adds Timeline feature to Overview
drops Profile view
improves rendering of Release Pulse to more gracefully handle overflowing
fixes text-decoration issue in Edge
fixes issue where Releases menu would overflow horizontally in Edge
adds animation to most recent release beacon
improves performance by only rendering most recent 30 releases in Releases menu
improves accessibility by disabling caption animation when Reduced Motion is enabled
adds touch-friendly captions to images
improves presentation of iOS Home Indicator by adding margin to bottom of body
improves appearance of Dark Mode controls by inverting accent
improves consistency of colours in Releases menu
fixes regression on contrast of secondary text
fixes issue where Release changes would not use the correct swatch
adds Dark Mode support
adds a 404 view
adds support for custom meta descriptions for each view
improves positioning of Releases menu
adds offline support
adds web app manifest
adds robots.txt file
adds sitemap.xml file
improves load times by fetching WebP images if supported
improves load times on low-DPI devices by supplying @1x assets
improves time-to-interactive by lazy-loading product images
adds lazy-loading to image assets
adds cache control headers
adds escape key listening to Releases menu
improves accessibility by enabling focus outline on all interactive elements
improves Menu responsiveness
improves contrast on buttons and links
improves consistency of border-radius across site
adds favicon, touch icons, and mask icon
adds Android toolbar colour
adds styling to noscript fallback message
adds number-to-word conversion to dynamic values in translations
improves accessibility by disabling animation when Reduced Motion is enabled
improves accessibility by migrating to hidden attribute on Releases menu
adds indication of current view to Menu
improves size of Releases menu
improves Releases menu animation
improves alignment of Tiles
fixes z-index issue on Releases control
fixes issue where Release Pulse would spill outside of Releases on scroll
fixes issue where Menu overflow indicator could be visible when not overflowing
new component-based design, built in React
drops articles from Home
drops feeds from Home
improves display and UX of Home product tiles
improves UX of Products pop-out menu
fixes alignment of About view call-out on small displays
fixes discrepancies with favicon and Safari pinned tab icon on different views
fixes JavaScript error when releasesView was not found
fixes escaping error in JSON feed
fixes broken tag link on Home
fixes regression on Android theme colour definition
fixes regression on Safari pinned tab icon colour definition
adds animation to most recent release
improves accuracy of Release Pulse by factoring release strength into graph peaks
adds UI control to change scope of Release Pulse
improves alignment of About view call-out to other elements
improves appearance of About view call-out links
improves layout of About view call-out
adds detail to Release Pulse by raising peaks on stacked releases
adds semantic linear-gradient to Release Pulse
restores button styling from 3.5.2–3.5.15
improves consistency of product link states with other UI elements
improves appearance of change type badges
improves accessibility of Products pop-out menu
improves rendering and performance of Release Pulse
improves accent colour
fixes issue where alt text would flash while tile images are loaded
fixes issue where Contact form checkbox was still interactive after being submitted
drops tags list from articles
drops universal selector
improves appearance of Release Pulse
improves overall contrast
improves appearance of About view call-out
improves appearance of navigation on large displays
drops Dribbble and Twitter links
improves UX of Search
improves appearance of product links on small displays
improves appearance of Home product tiles
adds Android theme colour definition
adds location overlay to Contact map
improves line-height of headings after typography simplification
fixes line-height issue with Search input
fixes alignment of Products pop-out on small displays
adds new appearance of Home product tiles
improves typography by simplifying to two font definitions
improves layout of About view call-out
improves appearance of Search results and Products pop-out
fixes issue causing Search to zoom on focus on iOS
improves accessibility by disabling animation when Reduced Motion is enabled
improves feature detection with @supports query
drops Modernizr.js
fixes calc() rounding error on stack items in Edge
fixes SVG validation warnings
drops viewport scaling definitions
improves App Store link icons based on Apple's redesign
improves general site accessibility with ARIA roles and state
improves UX of Contact form when clicking labels
improves presentation of pending products
fixes issue where Release Pulse did not factor next year into rendering
fixes issue where Search label wasn't styled on window blur
improves performance by prefetching some assets
improves accessibility of Search reset control
improves general site accessibility with ARIA attributes
fixes Moment ISO format warnings
fixes 404 on Releases Notes entry within sitemap file
restores JavaScript minification
improves favicon and touch icons
fixes HTML validation errors on About view
fixes issue where Release Pulse x-axis ticks could overflow
adds animation to Search results and Products pop-out
improves format of Search fallback on small displays
improves contrast of text-supported controls
fixes alignment of new/soon stack item badges
drops adaptive breakdown transitions
improves presentation of text-decorated links
improves consistency of :active states
fixes layout issue on About view
drops document background-colour
improves layout of Contact methods on small displays
drops autofocus from first input on Contact form
adds decorated links to Footer
improves appearance of product links
improves white space on small displays
improves contrast of most interface controls and links
fixes regression on Contact form error and success states
fixes validation error on Contact form email input
adds decorated links to Contact methods
improves contrast of inline code samples
improves legibility of releases
improves appearance of Release Pulse
improves appearance of buttons and controls
fixes issue where Search reset control would sit outside of bounds in Chrome
fixes issue where Contact form counter would obscure scrollbar
drops custom font for code samples
improves link text-decoration
adds ability to Search for views
adds support for release notes to be embedded within Posts
adds animation to Contact map pin
restores '/' hotkey for invoking Search
improves design of Search
improves load time of product stack when displayed at small sizes
improves transition between some breakpoints
improves accessibility with decorated links
improves portrait-orientation layout on 10.5" iPad Pro
improves accessibility by adding title attributes to About view
improves layout of About view on small displays
improves caching with versioned assets
improves performance by deferring JavaScript execution
fixes regression on layout of Search results on small displays
fixes issue where highlighted Search result would spill out of container on iOS
adds new Products view
adds new About view
adds support for quick links
adds support for pending items in Products pop-out
adds JSON and Atom feed discovery
fixes issue that prevented Products pop-out from being scrollable on touch
improves overflow handling of Products pop-out
improves Search, Twitter, and email icons
improves layout of Search results on small displays
improves simplicity of timestamps
improves UX of Search when clicking label
adds x-axis ticks to Release Pulse
adds support for JSON feed
improves UX of Contact form when clicking labels
improves Contact map by linking to Google Maps
improves accessibility by adding title attributes site-wide
restores JavaScript minification
adds 'new content' indicator badge to Products pop-out
fixes issue with z-index of Products pop-out
improves styling of Contact form checkboxes
improves global colour palette
improves appearance of inline code samples
adds gzip compression
adds browser cache expiry
improves indication of Contact form character limit
improves load time of Contact map on low-DPI displays
fixes issue that caused some SVG assets to clip in Safari
fixes HTML validation issue on article timestamps
improves flexibility of Products pop-out
improves performance of JPEG asset loading via Google Guetzli
improves appearance of Release Pulse
improves accessibility of navigation
improves typography in Chrome by adding BlinkMacSystemFont to font stack
improves visibility of product links within articles
improves consistency of border-radius across site
adds new Contact view
adds new Products pop-out
adds Release Pulse visualisation to Releases Notes
adds styling based on window focus and blur events
restores HTML compression
improves appearance of code samples
improves appearance of drop shadows
improves visibility of tags on Home
improves appearance of release change types
drops Design view
drops Notes view
fixes issue that caused Contact form icon not to display
improves handling of tags on Notes view
improves primary colour
improves layout of Notes view
improves typography on Releases Notes
improves distinction between interactive and static Design shots
improves layout model for tiles
improves layout model for external links
adds ability to link Design shots to notes
improves appearance of Design stream icon
improves UX of Contact form inputs in Edge
adds new Safari pinned tab icon
adds new favicon
improves appearance of Releases Notes
fixes layout regression on Contact form inputs
drops Google Analytics
adds new, simplified Design view
improves Notes view header
improves overall colour consistency
adds new, simplified single-column layout for Notes view
adds new navigation styling
improves date formatting site-wide
improves external link indicator
improves performance by migrating to SVG assets
drops post type indicators from articles
improves appearance of :focus elements on large displays
restores Contact form
fixes issue where a horizontal scrollbar could flash while resizing window
improves appearance of backdrop-filter in Safari
improves touch icons
improves typography
improves read time calculation
adds rubber band scrolling to code samples on iOS devices
fixes publish date on notes
improves styling of quotes and lists
improves responsiveness of navigation and Releases Notes
improves handling of Search overscroll when resize event fires
adds Search to small displays
fixes an edge case where Search reset control would not be exposed
fixes a regression which caused fallback colours to show through on lazy-loaded images
improves navigation on small displays
improves consistency of margins and colour
improves Atom feed validation
improves appearance of long links on small displays
drops Home tile animations when images are loaded from cache
adds rubber band scrolling to Search results on iOS devices
fixes query string discrepancy when Search input changed faster than XHR
fixes errors when using Search keyboard navigation without results
fixes issue where pageshow event would not restore Search input value
fixes issue where using Search would cause the window to jump
improves performance of Search input
improves Search results keyboard control
adds keyboard control to Search results
adds ability to invoke Search via URL query string
adds browser history manipulation while searching
restores tags to Notes view
improves appearance of loaded Search input
improves appearance of Search results
adds external link indicator to Home tiles
adds animation to Design view
fixes issue where XHRs could compound on Design view causing long load time
improves HTML compression on Design view
adds loading animation to various UI components
improves handling of Search by listening to input event
improves load time of notes on low-DPI displays
adds 167px touch icon
adds forced SSL and no-www access
improves XHR activity indication on Design view
improves URL rewriting
adds Safari pinned tab icon
restores touch icons
restores favicon
fixes HTML validation issues
adds powerful site-wide Search
adds Contact menu
restores asset conditioning against display DPI
restores asset lazy-loading
improves overall design of Home, Design, and Notes views
improves site feed; now using Atom instead of RSS
improves responsiveness
improves performance
drops Archive view
drops Icons view
fixes issue where some 404 view links would not render
fixes HTML compression issues after updating to Jekyll 3
adds -apple-system font support
improves accuracy of Archive Search results
improves performance of Archive live Search
fixes HTML validation issues
adds iPhone template to Billboard
improves Billboard layout on small displays
improves rendering of text across site
adds new hero image
improves layout of Billboard
improves compression of image assets
adds new hero image
improves appearance of Home tiles on iPad in landscape
improves load time on hero image via progressive scanning
improves touch icons
improves layout of navigation on small displays
improves legibility of hero image on small displays
fixes discrepancies in colour on Releases
drops page-controller disclosure from Home
adds HTTPS support
adds Icons view
adds Colophon view
improves overall website aesthetics and micro-copy
drops article Ribbon from Home
adds support for hero images
improves RSS Feed by adding support for publish times
fixes issue where lazy-loaded images would not load on @1x displays
drops Contact form; replaced with email link
adds support for images within articles
improves Home Ribbon presentation
fixes issue where Contact form would not autofocus
adds @3x support
adds 180px touch icon and 48px favicon
improves iOS product presentation
adds linked tags to articles
improves history states while using Archive
adds new navigation and updated Header
adds tag-based taxonomies to articles
adds '/' hotkey for invoking Archive Search
improves Archive accessibility
improves layout of articles and Archive
drops outdated content from Archive
improves accessibility with better heading level semantics
improves code block styling; now with proper overflow
improves Further Reading module
improves date formatting
improves error handling on Contact form
improves transitions on Contact form
adds document title switching as Billboard panel changes
adds share tool to articles
improves layout on viewports under 1024px
improves error handling on Contact form
improves touch icons
improves layout of Home on small displays
improves gesture responsiveness on touch devices
improves typography
improves Billboard background gradients
improves keyboard support on Billboard
drops Contact form on touch devices; now using mailsheet
adds new light-weight Billboard design
improves typography
improves performance and load times
adds latest post Ribbon to Home
improves Search by trimming query
drops hints from Billboard pagination
adds result count to Search results
improves HTML compression
adds RSS Feed and social links to Footer
fixes high-DPI display issue on Billboard pagination
adds syntax highlighting to code snippets
improves performance by compressing CSS and JavaScript
adds Twitter Feed
adds RSS Feed
adds support for scrolling within feature panels
adds keyboard navigation to Billboard
improves typography
improves touch icons
improves hit area on Billboard controls
improves keyboard support on Contact form
fixes a bug which caused read time to always display as 1
adds lazy-loading to Billboard
improves anti-aliasing on feature panels
fixes issue where high-DPI tiles would not load in landscape orientation
adds portfolio carousel to Billboard
adds read times to articles
improves load time on Billboard
improves error handling on Contact form
adds article Archive with live Search
adds article pagination
adds favicon and touch icons
improves article permalinks
improves high-DPI support
initial launch