Resolved conflict in site/extra/community/layout.js by preserving the
basePath-based routing from dev branch, which properly handles both
community site hosting (tinytorch.ai) and Netlify deployment contexts.
Also preserved the 'join' action handler from dev branch for signup flow.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Delete outdated site/ directory
- Rename docs/ → site/ to match original architecture intent
- Update all GitHub workflows to reference site/:
- publish-live.yml: Update paths and build directory
- publish-dev.yml: Update paths and build directory
- build-pdf.yml: Update paths and artifact locations
- Update README.md:
- Consolidate site/ documentation (website + PDF)
- Update all docs/ links to site/
- Test successful: Local build works with all 40 pages
The site/ directory now clearly represents the course website
and documentation, making the repository structure more intuitive.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implement tito benchmark baseline and capstone commands
- Add SPEC-style normalization for baseline benchmarks
- Implement tito community join, update, leave, stats, profile commands
- Use project-local storage (.tinytorch/) for user data
- Add privacy-by-design with explicit consent prompts
- Update site documentation for community and benchmark features
- Add Marimo integration for online notebooks
- Clean up redundant milestone setup exploration docs
- Finalize baseline design: fast setup validation (~1 second) with normalized results
- Remove site/_static/archive/ Gemini images (no longer needed)
- Remove tinytorch.egg-info/ from git tracking (build artifact)
- Add *.pdf to .gitignore to ensure LaTeX PDFs are not tracked
- Local cleanup: removed LaTeX artifacts, __pycache__, and site/_build/
The itemize environment parameters [leftmargin=*, itemsep=1pt, parsep=0pt]
were appearing as visible text in the PDF because the enumitem package
wasn't loaded. This fix adds \usepackage{enumitem} to the preamble.
All itemized lists now format correctly with proper spacing and margins.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Add JavaScript to dynamically fix GIF image paths in hero carousel
for both main site and dev subdirectory deployments. The fix detects
the current page directory and prepends it to relative _static paths.
- Add checks for carousel elements existence before initializing
- Prevent auto-advance from starting if no slides exist
- Add safety checks for dots/indicators that may not be present
- Fixes TypeError when carousel is not on the page
- Remove carousel text labels, rely on larger terminal frame titles (20px bold)
- Fix navigation arrow positioning: moved to top: 405px with z-index: 100
- Reduce carousel height from 500px to 450px for better spacing
- Add clickable sidebar link to mlsysbook.ai via JavaScript
- Fix quickstart button link to use .html extension
- Add mobile responsive CSS for logo, headings, and carousel
- Update Terminalizer configs with larger frame title font
- Add textbook link with hover effects in intro page
Changes to HTML:
- Move carousel-nav outside carousel-track container
- Navigation now appears as separate element below the carousel
Changes to CSS:
- Remove absolute positioning (no longer needed)
- Use simple flexbox layout with margin-top: 1rem
- Remove bottom/left/right positioning properties
This fixes the overlap issue where arrows were positioned at the bottom
of the carousel-track, overlapping the GIF content. Arrows now appear
cleanly below the entire carousel as a separate row.
Changes to CSS:
- Position carousel-nav at bottom:0 instead of vertical center
- Use centered horizontal layout with 1rem gap
- Reduce arrow size to 32px (smaller, less intrusive)
- Remove semi-transparent background, use solid #e2e8f0
- Simplify shadow to 0 2px 6px
The vertical center placement with arrows overlapping the GIF content
looked messy and busy. This cleaner approach positions compact arrows
centered below the heading ("Clone & Setup" etc.), keeping them visible
but not interfering with the terminal content display.
Changes to CSS:
- Position carousel-nav absolutely at top:50% with translateY(-50%)
- Use space-between to place arrows on left/right edges
- Increase arrow size to 44px for better visibility
- Add semi-transparent background: rgba(226, 232, 240, 0.95)
- Enhance shadow for better visibility over content
- Use pointer-events:none on container, auto on arrows
Changes to HTML:
- Move carousel-nav inside carousel-track for proper positioning
- Remove carousel-indicators div (not using dot indicators)
- Simplify to just prev/next arrow buttons
This follows standard carousel UX conventions where navigation arrows
appear at the vertical center of the content, positioned on the left/right
edges. Arrows are now centered on the heading text ("Clone & Setup" etc.)
rather than below it, making them more visible and easier to use.
Removed the <p> description lines from all carousel items:
- "git clone → ./setup → tito system doctor"
- "tito module start 01 → Code → Test inline"
- "tito module complete → Your code becomes tinytorch/"
- "tito milestone run 03 → 1986 MLP uses YOUR code"
Now carousel shows only clean headings (Clone & Setup, Build in Jupyter, etc.)
below each GIF. The workflow details are already visible in the GIF animations,
making the text descriptions redundant.
Changes to CSS:
- Remove absolute positioning from .carousel-nav
- Use flexbox centered layout with 2rem gap between arrows
- Reduce arrow size back to 36px (from 40px)
- Add margin-top: 1.5rem for spacing from carousel text
Changes to HTML:
- Move carousel-nav outside carousel-track
- Navigation now appears below carousel text instead of overlaid on GIF
This fixes overlap issues - arrows are now cleanly positioned
below the carousel text labels, not on top of the GIF terminal window.
Changes to CSS:
- Position carousel-nav absolutely at top:40% of carousel-track
- Move arrows to sides (space-between) instead of center bottom
- Increase arrow size to 40px for better visibility
- Add box-shadow to arrows for depth
- Use pointer-events:none on nav container, auto on arrows
Changes to HTML:
- Move carousel-nav inside carousel-track for proper absolute positioning
This fixes the overlap where left/right navigation arrows were appearing
on top of the carousel heading text ("Build in Jupyter" etc).
Arrows now appear on the left/right sides of the GIF at the vertical center.
Changes:
- Increase carousel-track min-height from 410px to 500px
- Change overflow from hidden to visible to prevent text cutoff
- Add margin-top and padding to carousel-text for better spacing
- Reduce heading size from 1.75rem to 1.5rem for better fit
- Add monospace font to carousel description text
- Update mobile responsive breakpoint with overflow:visible
- Change fixed height to auto for GIF preview on mobile
This ensures carousel text labels ("Clone & Setup", "Build in Jupyter", etc.)
are fully visible below the GIF demos without being cut off.
Configuration updates:
- Reduced terminal width from 160 to 100 columns for better text density
- Increased font size from 12px to 14px for improved readability
- Added ANSI green color codes to shell prompts
- Updated base-config.yml as single source of truth
Generated new GIFs:
- 01-clone-setup.gif: Regenerated with new 100-column layout
- Other GIFs pending regeneration with ./render-all.sh
Documentation:
- Updated README with current dimensions and font size
- Documented configuration inheritance pattern
These changes optimize the carousel display by reducing wasted whitespace
while maintaining readability with larger fonts. The 100-column width
provides better visual balance in the carousel container.
- Increased terminal dimensions from 80x24 to 160x24 for wider, more cinematic format
- Added ANSI green color codes to prompts for better visual appeal
- Updated all 4 Terminalizer YAML configs with consistent styling
- Created base-config.yml as single source of truth for shared settings
- Updated CSS to use dark terminal background instead of gray
- Changed object-fit from contain to cover for better width filling
- Added render-all.sh batch script for regenerating all GIFs
- Updated README with complete documentation and troubleshooting
Generated GIFs:
- 01-clone-setup.gif (7.0M)
- 02-build-jupyter.gif (1.3M)
- 03-export-tito.gif (1.9M)
- 04-validate-history.gif (3.3M)
- Create base-config.yml as single source of truth for styling
- Document that Terminalizer doesn't support config inheritance
- Individual demo configs are manually kept in sync with base config
- Makes it easier to maintain consistent look across all demos
- Add alpha release badge above pip install command on intro page
- Update README status badge to reflect alpha status
- Clarify that package is in active development
- Refactor resources.md to focus on ML Systems textbook as primary companion
- Remove Academic Foundation section from credits.md (moved to resources)
- Update quickstart guide, FAQ, and student workflow documentation
- Improve classroom use documentation with updated guidance
- Add hero carousel component with auto-advance and keyboard navigation
- Add interactive ML history timeline with milestone popups
- Add comprehensive CSS styling for carousel and timeline components
- Update intro page content with tier-based structure and improved messaging
- Add install command display and enhanced visual design
- Add tier overview pages to each tier section in navigation
- Reorder resources section to place Learning Resources before Credits
- Improve navigation structure for better tier-based learning flow
- Update site title to Tiny🔥Torch branding
- Add emojis to tier captions for visual consistency
- Update intro page heading and description
- Add comprehensive comments explaining branding and UI changes
- Improve site navigation and content structure
- Update development testing documentation
- Enhance site styling and visual consistency
- Update release notes and milestone templates
- Improve site rebuild script functionality
- Fix 14_profiling: Replace Tensor with Linear model in test_module, fix profile_forward_pass calls
- Fix 15_quantization: Increase error tolerance for INT8 quantization test, add export marker for QuantizedLinear
- Fix 19_benchmarking: Return Tensor objects from RealisticModel.parameters(), handle memoryview in pred_array.flatten()
- Fix 20_capstone: Make imports optional (MixedPrecisionTrainer, QuantizedLinear, compression functions)
- Fix 20_competition: Create Flatten class since it doesn't exist in spatial module
- Fix 16_compression: Add export markers for magnitude_prune and structured_prune
All modules now pass their inline tests.
- Removed emojis from all section headers (## and ###)
- Reduced emojis in body text and callout boxes
- Standardized link references (removed emoji prefixes)
- Maintained professional tone while keeping content accessible
- Updated quickstart-guide, student-workflow, tito-essentials, faq, datasets, community, resources, testing-framework, learning-progress, checkpoint-system, and all chapter files
## New Documentation Pages Integrated into Site Navigation
**site/learning-journey-visual.md** - 10 interactive Mermaid diagrams:
1. Complete Learning Flow - Full flowchart through all 20 modules & 6 milestones
2. Module Dependencies - Shows how modules depend on each other
3. Three-Tier Timeline - Visual progression through Foundation/Architecture/Optimization
4. Historical Milestones - Gantt chart showing ML history recreation (1957→2024)
5. Student Learning Paths - Decision tree for different learning approaches
6. Capability Progression - Skill levels unlocked at each tier
7. Workflow Cycle - The edit → export → validate loop
8. Dataset Strategy - When to use shipped vs downloaded datasets
9. Time vs Outcomes Quadrant - Comparing learning path investments
10. Difficulty Curve - Line chart showing module difficulty progression
## Site Navigation Updates (_toc.yml)
**Added to "Using TinyTorch" section:**
- Student Workflow (student-workflow.md) - Essential edit → export → validate cycle
- Datasets Guide (datasets.md) - Complete dataset documentation
**Added to "Course Orientation" section:**
- Visual Learning Map (learning-journey-visual.md) - NEW Mermaid diagram showcase
- FAQ (faq.md) - Comprehensive answers to common questions
## Mermaid Integration
- Mermaid already configured in _config.yml (v10.6.1)
- All diagrams use color coding:
- Blue: Foundation modules
- Orange: Critical modules (Autograd, Training)
- Purple: Advanced architecture modules
- Green: Milestone achievements
- Yellow: North Star milestone (CIFAR-10)
- Red: Capstone
## Benefits
**Visual learners**: Diagrams show the complete learning journey at a glance
**Navigation**: All new pages now appear in site sidebar
**Discoverability**: FAQ answers "Why TinyTorch vs alternatives"
**Dataset clarity**: Students understand shipped vs downloaded data strategy
**Journey visualization**: See the path from tensors to transformers [Claude Code](https://claude.com/claude-code)
Updated remaining documentation to clarify the actual TinyTorch workflow and mark optional/future features appropriately.
**Phase 2 (Important files):**
- **learning-progress.md**: Added workflow context at top, clear modules vs checkpoints vs milestones explanation, module progression tables by tier, marked checkpoints as optional
- **checkpoint-system.md**: Added prominent "Optional Progress Tracking" banner at top, clarified this is not required for core workflow
**Phase 3 (Supporting files):**
- **classroom-use.md**: Added "Coming Soon" banner for NBGrader integration, clarified current status vs planned features, updated to reflect 18 modules (not 20)
Key clarifications across all files:
- Core workflow: Edit modules → `tito module complete N` → Run milestone scripts
- Checkpoints are optional capability tracking (helpful for self-assessment)
- Instructor features marked as "coming soon" / "under development"
- All pages reference canonical student-workflow.md
Completes the workflow documentation audit identified by website-manager.