- 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
8.8 KiB
Community Map Vision: "We Are TinyTorch"
The Vision
A world map that shows where TinyTorch builders are located, creating a visual sense of global community. When students complete milestones and submit, they see:
"Wow, there's a community of people building ML systems all over the world!"
Design Concept
The Map Experience
After tito milestone validate --all passes:
🎉 Congratulations! All Milestones Validated!
✅ Setup Complete
✅ All Tests Passing
✅ All Milestones Passed: 6/6
🌍 Join the Global TinyTorch Community:
Run 'tito community submit' to add your location to the map
and see builders from around the world!
(Completely optional - only shares country, not exact location)
After tito community submit:
✅ You've joined the TinyTorch Community!
📍 Your Location: United States
🌍 View the map: https://tinytorch.ai/community
🎖️ You're builder #1,234 on the global map!
💡 See where other TinyTorch builders are located worldwide
The Map Visualization
Features:
- World map with dots/countries highlighted
- Interactive: Click to see stats per country
- Live counter: "1,234 builders worldwide"
- Diversity showcase: "Builders in 45 countries"
- Recent additions: "5 new builders this week"
Privacy:
- Country-level only (not city/coordinates)
- Opt-in: Must explicitly submit
- Anonymized: No personal identifiers
- Optional: Can participate without location
Implementation Design
1. Submission Flow
Command: tito community submit [--country COUNTRY]
What it does:
- Detects country (or asks user)
- Validates milestones passed
- Submits anonymized data:
{ "timestamp": "2024-11-20T10:30:00Z", "country": "United States", // Country only, not city "milestones_passed": 6, "system_type": "Apple Silicon", "anonymous_id": "abc123..." // Generated hash, not personal }
Validation:
- Checks:
tito system doctorpassed - Checks:
tito milestone validate --allpassed - Only submits if everything validated
2. Map Visualization
Technology Options:
Option A: Simple Static Map (Recommended for MVP)
- GitHub Pages + Leaflet.js or Mapbox
- JSON file with submissions
- Static map that updates on deploy
- Free, simple, works immediately
Option B: Interactive Map
- Leaflet.js or Mapbox GL
- Real-time updates
- Click countries for stats
- More engaging, requires API
Option C: GitHub Pages + GeoJSON
- Store submissions as GeoJSON
- Use GitHub's map rendering
- Simple, free, GitHub-native
Recommendation: Start with Option A (Leaflet.js), upgrade to Option B later.
3. Data Structure
Submissions JSON (community/submissions.json):
{
"total_builders": 1234,
"countries": {
"United States": 456,
"India": 234,
"United Kingdom": 123,
"Germany": 89,
...
},
"recent_submissions": [
{
"timestamp": "2024-11-20T10:30:00Z",
"country": "United States",
"milestones": 6,
"system": "Apple Silicon"
},
...
],
"stats": {
"total_countries": 45,
"this_week": 23,
"this_month": 156
}
}
4. Map Page Design
URL: https://tinytorch.ai/community or /community-map
Features:
- World map with country highlights
- Counter: "1,234 builders worldwide"
- Country list: "Builders in 45 countries"
- Recent activity: "5 new builders this week"
- Call to action: "Join the map →
tito community submit"
Visual Design:
- Clean, modern map
- Dots or country shading
- Hover shows country stats
- Mobile-friendly
- Fast loading
User Journey
Complete Flow
# 1. Setup and validate
git clone ...
./setup-environment.sh
tito system doctor # ✅ All checks passed
tito milestone validate --all # ✅ All 6 milestones passed
# 2. Join community
tito community submit
# Detecting your location...
# Country: United States
#
# ✅ You've joined the TinyTorch Community!
#
# 🌍 View the map: https://tinytorch.ai/community
# 🎖️ You're builder #1,234 on the global map!
#
# 💡 See where other TinyTorch builders are located worldwide
# 3. View the map (opens in browser)
# Shows: World map with dots, your country highlighted
# Shows: "1,234 builders in 45 countries"
# Shows: Recent additions
Privacy & Consent
Privacy Model
What's Shared (with consent):
- ✅ Country (not city/coordinates)
- ✅ System type (Apple Silicon, Linux x86, etc.)
- ✅ Milestone count (how many passed)
- ✅ Timestamp (when submitted)
What's NOT Shared:
- ❌ Exact location
- ❌ Personal information
- ❌ IP address
- ❌ Email/name
- ❌ Institution
Consent Flow:
tito community submit
⚠️ This will add your location to the public community map.
📊 What will be shared:
• Country: United States
• System type: Apple Silicon
• Milestones passed: 6
• No personal information
🔒 Privacy: Only country-level location, completely anonymized
Continue? [y/N]: y
✅ Submitted! View map: https://tinytorch.ai/community
Implementation Steps
Phase 1: MVP (Simple Map)
-
Create
tito community submitcommand- Detect/ask for country
- Validate milestones passed
- Generate submission JSON
- Save locally + optionally upload
-
Create map page (
site/community-map.md)- Static HTML with Leaflet.js
- Reads from
community/submissions.json - Shows world map with countries
- Displays stats
-
Submission storage
- GitHub Pages:
community/submissions.json - Or: Simple API endpoint
- Updates on each submission
- GitHub Pages:
Phase 2: Enhanced (Interactive Map)
-
Interactive features
- Click countries for details
- Filter by system type
- Timeline view (growth over time)
- Recent submissions feed
-
Engagement features
- "Builder of the week" (random selection)
- Country leaderboards (optional)
- Milestone completion stats
Phase 3: Community Features
-
Social elements
- Share: "I'm builder #1,234 on the TinyTorch map!"
- Badges: "🌍 Global Builder"
- Stories: "Builders from 45 countries"
-
Analytics
- Growth over time
- Geographic distribution
- System diversity
- Milestone completion rates
Technical Implementation
Simple Approach (GitHub Pages)
File Structure:
community/
├── submissions.json # All submissions
├── map.html # Map visualization page
└── submit.py # Submission script (optional API)
Map Page (site/community-map.md or HTML):
<!-- Leaflet.js map -->
<div id="community-map"></div>
<!-- Stats -->
<div>
<h2>🌍 TinyTorch Community</h2>
<p>1,234 builders in 45 countries</p>
<p>5 new builders this week</p>
</div>
<!-- Call to action -->
<p>Join the map: <code>tito community submit</code></p>
Submission Process:
- User runs
tito community submit - Generates submission JSON
- Option A: User manually PRs to
community/submissions.json - Option B: API endpoint accepts submissions
- Map page reads JSON and renders
API Approach (Future)
Endpoint: POST /api/community/submit
- Accepts submission JSON
- Validates (check milestones)
- Stores in database
- Returns success + map URL
Map Page:
- Fetches submissions from API
- Renders interactive map
- Updates in real-time
Success Metrics
Community Growth:
- Number of countries represented
- Total builders on map
- Growth rate (new builders/week)
- Geographic diversity
Engagement:
- Map page views
- Submission rate (after milestones pass)
- Return visits to map
- Social shares
The "Wow" Moment
When someone views the map:
🌍 TinyTorch Community Map
[Interactive world map showing dots/countries]
📊 Stats:
• 1,234 builders worldwide
• 45 countries represented
• 5 new builders this week
• Top countries: US (456), India (234), UK (123)
🎯 Recent Activity:
• Builder from Germany just joined!
• Builder from Japan completed all milestones!
• Builder from Brazil reached milestone 3!
💡 Join the map: Run 'tito community submit' after completing milestones
The Impact:
- Visual proof of global community
- Sense of belonging
- Motivation to continue
- Pride in being part of something bigger
Recommendation
Start Simple, Build Community:
- MVP: Simple map with country dots
- Privacy: Country-level only, opt-in
- Validation: Only after milestones pass
- Visual: Make it beautiful and engaging
- Growth: Let it populate organically
The goal: Create a visual representation that makes students feel part of a global movement of ML systems builders!
This map becomes a symbol of the TinyTorch community - showing that people all over the world are building ML systems from scratch together. 🌍✨