A modern, fast, and accessible website for tracking Chrome OS version updates, recovery images, and device information.
Live Site: https://cros.tech
Chrome OS Updates provides up-to-date information about Chrome OS versions across all devices and boards, including:
- Current stable, beta, dev, and canary versions for every device
- Recovery image downloads for all channels and versions
- Device specifications including architecture, kernel versions, and capabilities
- Chrome OS Flex update information
- Historical version data
This site was orignally built to provide a more user-friendly and performant alternative to the now-defunct cros-updates-serving appspot app.
All Chrome OS version and device data is sourced directly from Google's official APIs and community-maintained repositories:
- Version Data: Chromium Dashboard API
- Recovery Images: Google Chrome OS Recovery
- Chrome OS Flex: Flex Recovery Data
- Googlebooks: Googlebook Recovery Catalog — recovery builds and official downloads, separate from ChromeOS serving versions.
- Device Metadata: ChromeOS Update Directory - Enhanced device capabilities, kernel versions, architecture, and hardware information. (Thanks jay0lee!)
Data is automatically updated every 15 minutes via GitHub Actions (see .github/workflows/scrape.yml).
Built with modern web technologies for maximum performance and maintainability:
- Eleventy (11ty) 3.0 - Static site generator
- LightningCSS - CSS processing and minification (100x faster than traditional tools)
- Terser - JavaScript minification
- html-minifier-terser - HTML minification
- @11ty/eleventy-plugin-bundle - Asset bundling
- Node.js 20 or higher
- npm or pnpm
git clone https://github.com/skylartaylor/cros-updates.git
cd cros-updates
npm install# Development server (with live reload)
npm start
# Production build
npm run build:prod
# Development build
npm run build
# Production server (test minified output)
npm run start:prod
# Clean output directory
npm run clean
# Debug mode (verbose logging)
npm run debugChrome OS version data is automatically updated every 15 minutes via GitHub Actions:
- Workflow runs scraper script (
scripts/scrape.cjs) - Fetches latest data from Chromium Dashboard API
- Commits updated data files if changes detected
- Netlify automatically rebuilds and deploys
The committed src/data files also feed an external Discord bot and trigger Netlify rebuilds, while the Eleventy site build itself fetches the live Chromium Dashboard and recovery APIs directly.
Googlebooks have a directory at /googlebooks/ and device pages at /googlebook/<codename>/.
Their catalog is fetched at build time and validated by lib/googlebook.js; an invalid or
unavailable catalog fails the build rather than publishing missing device pages. The scraper
also tracks src/data/googlebook-recovery.json so Googlebook-only changes trigger rebuilds.
The legacy ChromeOS JSON/CSV formats remain compatible with the Discord bot.
Search entries carry a platform and can supply their own url. Pinned Googlebooks use
googlebook:<codename> IDs and recovery metadata rather than ChromeOS channel versions.
Recovery channels and build identifiers are preserved from the source; they are not treated
as live OTA versions. The catalog's download size is a placeholder (zipfilesize: 1), so the
build asks each recovery download for its real size and publish date; if that request fails the
page simply leaves them out.
Issues and pull requests are welcome! Please feel free to:
- Report bugs or issues
- Suggest new features
- Improve documentation
- Optimize performance
For questions, feedback, or issues, please:
- Open an issue
- Email: hi@skylar.cc
Previous Version: The legacy Gatsby-based version is preserved at cros-updates-legacy