- Deploy textbook to /book/ subdirectory instead of root
- Remove Netlify config (netlify.toml, _redirects files)
- Remove Netlify badges from footer, index, and acknowledgements
- Add root index.html redirect to /book/ as fallback
- Simplify deployment (no more tinytorch/kits preservation needed)
- Update 404.qmd with correct paths
- Each subsite now deploys to its own directory:
/book/ (textbook), /kits/ (hardware), /tinytorch/ (framework)
Remove 23 accidentally committed ._*xref.json files that are
macOS resource fork metadata. These files serve no purpose in
the repository and clutter the codebase.
- Add custom 404 pages for Kits, Collabs, and TinyTorch
- Update OG images to use high-res book cover (1200x630px)
- Add PWA support with site.webmanifest and apple-touch-icon
- Enable TOC for Collabs (was disabled)
- Move subscribe-modal.js to _brand as shared asset
- Add theme-color meta tags matching project accent colors
- Book: site-url, description, og:image with cover art
- Kits: site-url, description, og:image with favicon
- Collabs: site-url, description, og:image with favicon
Enables proper social media previews when sharing links on
LinkedIn, Twitter, Facebook, Discord, Slack, etc.
- Add Google Fonts loading (Inter, JetBrains Mono) to all projects
- Align typography and navbar styling across ecosystem
- Update _brand/base.scss as canonical reference for shared styles
- Update _brand/tokens.scss to match book crimson accent
- Add consistent mobile responsive styles to collabs
- Document architecture for maintaining style consistency
- Add punch line and mission statement establishing AI engineering
- Rename "About This Project" to "About the Ecosystem"
- Update Learning Stack diagram with systems-focused descriptions
- Move "Start Here" earlier for immediate action orientation
- Add Research to Teaching Loop section under What Makes This Different
- Expand Support section with mission tracking and impact explanation
- Update book/README.md with detailed learning content
- Update kits/README.md with consistent template structure
- Fix all kits links to use mlsysbook.ai/kits
- Change voice from "I" to "we" throughout
- Add collabs/ directory with Quarto project configuration
- Create landing page with "Coming 2026" placeholder content
- Add CI/CD workflow for dev deployment (collabs-publish-dev.yml)
- Update navbar in book and kits to link to /collabs/
- Add .gitignore to exclude tex build artifacts from book
- Update all subscribe modals to show just "MLSysBook" branding
- Change navbar project links to relative paths for dev site compatibility
- Update book, kits, and tinytorch configs consistently
- Change workflow icon to 📦 (package)
- Update dev workflow to deploy via SSH to dev repo
- Use DEV_KITS_PATH variable for consistency
- Add README.md with quick start and directory structure
- Create kits-build-pdfs.yml using Docker container with TeX Live
- Update kits-publish-dev.yml to build PDF and deploy with site
- Update kits-publish-live.yml to build PDF and deploy with site
- Add Downloads menu to navbar with Hardware Kits PDF link
- Add _redirects for /kits/pdf shortcut
- Create custom LaTeX cover page using labdivision-style circuit decorations
- Use teal brand color with traces, nodes, and subtle geometric background
- Display HARDWARE/KITS title on two lines with authors and companion text
- Remove titlepage extension config in favor of custom LaTeX implementation
- Add titlepage-bg.tex for potential future background customization
- Remove background image (was too similar to main textbook)
- Use teal (#0d9488) solid color cover with white text
- Update author attribution: 'Marcelo Rovai, with Vijay Janapa Reddi'
- Add 'A Companion to Introduction to Machine Learning Systems' tagline
- Creates distinct visual identity while maintaining series connection
- Remove Roman numeral frontmatter/mainmatter switching
- Set Arabic page numbering in before-body-includes.tex
- Simplify chapter command to just reset footnote counter
- All pages now use regular numbers (1, 2, 3...) not (i, ii, iii...)
- Copy cover-image-transparent.png from book
- Add coverpage-bg-image and bg-image positioning config
- Add coverpage-author array for proper cover formatting
- Creates visual consistency with main textbook
- Fix filter-metadata format for inject_parts.lua (nested under filter-metadata.part-summaries)
- Change author to array format for proper newline separation
- Update titlepage elements with separate author lines
- Copy subscribe-modal.js from book
- Update navbar Subscribe link to use local #subscribe
- Add script include to HTML format config
- Modal now opens in-place instead of redirecting to mlsysbook.ai
- Move _quarto.yml to config/_quarto-html.yml
- Move profile PDF config to config/_quarto-pdf.yml
- Create symlink _quarto.yml -> config/_quarto-html.yml
- Update Makefile to switch configs via symlink (matches book approach)
- This fixes the per-file PDF rendering issue caused by profile merging
- Use 'quarto render --profile pdf' instead of '--to titlepage-pdf'
- Rename format from titlepage-pdf to pdf (extension adds titlepage filters)
- Profile approach works correctly with book project type
- Remove redundant standard PDF format from profile
- Update Makefile to use 'quarto render --to titlepage-pdf --profile pdf'
- Streamline build process to single PDF format with cover page
Copy mlsysbook-ext/titlepage extension from book and configure
titlepage-pdf format with custom cover page for Hardware Kits PDF.
Build with: quarto render --to titlepage-pdf --profile pdf
Updated prices across all pages based on current retailer pricing:
- XIAOML Kit: ~$40 (was $15-50)
- Grove Vision AI V2: ~$25 (was $20-30)
- Arduino Nicla Vision: ~$95 (was $100-120)
- Raspberry Pi: $60-145 (reflects 2025 price increases)
Also fixed carousel caption bar padding for even spacing.
Getting Started:
- Restructured as step-by-step guide (Select → Setup → Choose Lab → Start)
- Added textbook connection section for academic context
- Clearer prerequisite expectations
Platforms:
- Renamed title from "Hardware Kits" to "Hardware Platforms" (avoid site title collision)
- Removed system requirements (moved to IDE Setup where they belong)
- Focused purely on hardware specifications and comparisons
IDE Setup:
- Added System Requirements section (moved from Platforms)
- Streamlined introduction
- Now contains all setup-related prerequisites in one place
Style:
- Improved carousel caption bar legibility (bolder text, larger font)
Replaced old content files with new streamlined organization:
- getting-started.qmd: Concise hardware selection and lab navigation
- platforms.qmd: Detailed hardware specs and comparisons
- ide-setup.qmd: Development environment setup procedures
Removed old files:
- ide_setup.qmd (replaced by ide-setup.qmd)
- kits.qmd (content moved to platforms.qmd)
- labs.qmd (content redistributed)
Getting Started is now action-oriented rather than pedagogical.
Created independent build system for Hardware Kits PDF output:
- Added PDF profile (_quarto/profiles/pdf/_quarto.yml)
- Copied tex files with teal branding (#0d9488)
- Added inject_parts.lua filter for part summaries
- Updated Makefile with html and pdf targets
Usage: make pdf (or quarto render --profile pdf)
Both Book and Kits now have identical navbar structure:
- [Projects▼] dropdown with Textbook, Hardware Kits, TinyTorch
- [Downloads▼] with PDF and EPUB
- Star, Support, Subscribe, GitHub (same order)
- Same title: "Machine Learning Systems"
This follows UX best practice for multi-project ecosystems:
consistent navigation with only accent color differentiating projects.
- Create _brand/base.scss as shared base stylesheet for all projects
- Update kits/assets/styles/style.scss to match book styling with teal accent
- Unify kits navbar with book navbar (same icons, dropdowns, footer)
- Both projects now have identical structure, only accent color differs:
- Book: Harvard Crimson (#A51C30)
- Kits: Teal (#148F77)
- Add consistent page footer with copyright and links
Monorepo restructuring for better build performance and separation of concerns:
- Create kits/ as standalone Quarto project with teal accent styling
- Add _brand/ directory with shared design tokens (tokens.scss)
- Move labs from book/quarto/contents/labs/ to kits/contents/
- Remove labs sections (Parts VII-XII) from book sidebar
- Add CI/CD workflows for kits (kits-publish-live.yml, kits-publish-dev.yml)
- Update netlify.toml redirects: /labs -> /kits/
- Add Volume I/II test sidebar config for future use
Deployment URLs:
- Textbook: mlsysbook.ai/
- Kits: mlsysbook.ai/kits/
- TinyTorch: mlsysbook.ai/tinytorch/
All three projects build independently and successfully.