diff --git a/CLAUDE.md b/CLAUDE.md index 3b5317c..9e1306e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -37,7 +37,8 @@ planetnix-website/ │ ├── css/ │ │ └── pico.min.css # Pico CSS framework │ ├── fonts/ # Local fonts (Geist, Geist Mono) -│ ├── images/ # Optimized images (76.6% size reduction) +│ ├── images/ # Source images (PNGs, SVGs) +│ │ └── generated/ # Generated images (WebP, responsive sizes) │ └── js/ # JavaScript files (if needed) ├── Justfile # Command runner recipes with inline docs ├── .github/workflows/ # CI/CD automation @@ -51,10 +52,15 @@ planetnix-website/ All extra resources needed for the website should be placed in the `assets/` folder: - **assets/css/** - CSS stylesheets (Pico CSS only; custom styles are inlined in index.html for performance) - **assets/fonts/** - Local font files (Geist 400/700, Geist Mono 400 - only critical weights) -- **assets/images/** - Optimized images, icons, logos, and graphics - - All images optimized using pngquant and optipng - - Lazy loading for below-the-fold images +- **assets/images/** - Source images (PNG, SVG) and icons + - Source PNGs are optimized using pngquant and optipng - Total size reduced from 2.3 MB to 556 KB + - **DO NOT manually edit files in generated/ folder** +- **assets/images/generated/** - Generated/optimized images (automatically created) + - WebP versions of all source PNGs + - Responsive image sizes (480w, 768w, 1024w) for background images + - Lazy loading for below-the-fold images + - This folder is regenerated by `just regenerate-all-images` - **assets/js/** - JavaScript files for interactivity (minimal) ## Development Workflow @@ -64,41 +70,56 @@ All extra resources needed for the website should be placed in the `assets/` fol # 1. Enter the development environment flox activate -# 2. Start the development server -just dev +# 2. Start the development server (managed by Flox services) +flox services start # 3. Edit index.html - changes reload automatically + +# 4. Stop the server when done +flox services stop ``` ### Common Tasks -**Important**: All `just` commands must be run within the Flox environment using `flox activate --`: +**Important**: Development server is managed by Flox services, not Just commands. ```bash +# Development Server (Flox Services) +flox activate # Enter environment first +flox services start # Start dev server (http://localhost:8888) +flox services stop # Stop dev server +flox services status # Check server status + +# Just Commands (run within Flox environment) flox activate -- just # List all available commands -flox activate -- just dev # Start development server flox activate -- just perf # Quick performance check (91/100 current) flox activate -- just lighthouse # Full performance audit with HTML report flox activate -- just lighthouse-mobile # Mobile performance test -flox activate -- just optimize-images # Re-optimize all PNG images -flox activate -- just generate-responsive-images # Create responsive image sizes (480w, 768w, 1024w) +flox activate -- just optimize-images # Re-optimize source PNG images in-place +flox activate -- just generate-responsive-images # Create responsive image sizes in generated/ +flox activate -- just generate-favicons # Generate all favicon and app icons +flox activate -- just regenerate-all-images # Regenerate ALL images (WebP + responsive) flox activate -- just clean # Remove generated reports -flox activate -- just info # Show environment info ``` -Alternatively, activate the Flox shell first, then run just commands directly: +Alternatively, activate the Flox shell first, then run commands directly: ```bash flox activate -# Now you can run just commands directly: -just dev +# Shows environment info and available commands automatically + +# Now you can run commands directly: +flox services start just perf +just lighthouse +flox services stop ``` ### Performance Testing -- **Local**: Use `flox activate -- just perf` before committing +- **Local**: Start server with `flox services start`, then use `just perf` before committing - **CI/CD**: Automated Lighthouse tests on every PR - **Comparison**: CI compares PR performance vs base branch - **Reports**: Posted as PR comments with score deltas +- **Note**: Lighthouse commands require the dev server to be running ## Git Workflow @@ -113,12 +134,35 @@ just perf - Keep PR descriptions concise and focused on the changes made - Describe what was changed and why, not how to test it +## Image Workflow + +### Source vs Generated Images +- **Source images** (`assets/images/`): Original PNGs and SVGs + - Edit and optimize these files when you need to change images + - Use `just optimize-images` to optimize source PNGs in-place +- **Generated images** (`assets/images/generated/`): Auto-generated WebP and responsive sizes + - **NEVER manually edit** files in this folder + - Regenerate with `just regenerate-all-images` or `just generate-responsive-images` + - These files are referenced in index.html for optimal loading + +### Adding New Images +1. Add source PNG/SVG to `assets/images/` +2. Optimize it: `flox activate -- just optimize-images` +3. Regenerate all optimized versions: `flox activate -- just regenerate-all-images` +4. Update index.html to reference the new image (use generated/ for WebP versions) + +### Updating Favicons +1. Replace `assets/images/planetnix-logo-small.png` with your new logo +2. Regenerate all favicons: `flox activate -- just generate-favicons` +3. All favicon and app icons will be updated in `assets/images/generated/` + ## Design Philosophy - **No build process**: Direct HTML and CSS for maximum simplicity - **Single-page design**: All content accessible from one page - **Semantic styling**: Pico CSS uses semantic HTML, no utility classes - **Performance first**: Every optimization counts +- **Separation of source and generated**: Source images in `assets/images/`, generated in `assets/images/generated/` - Images: 2.3 MB → 556 KB (76.6% reduction) - Initial load: Only 139 KB of images (lazy loading) - CSS inlined: Custom styles inlined to eliminate render-blocking requests @@ -130,11 +174,15 @@ just perf ### Implemented - ✅ **Image optimization**: pngquant + optipng (76.6% size reduction) + - Source images in `assets/images/` (PNGs, SVGs) + - Generated images in `assets/images/generated/` (WebP, responsive sizes) + - Regenerate all with `just regenerate-all-images` - ✅ **Responsive images**: Multiple sizes (480w, 768w, 1024w, 1280w) for adaptive loading - **Why responsive?** Saves 142 KB on mobile by serving appropriately sized images - Background images use `srcset` to load optimal size based on viewport - Generated using `just generate-responsive-images` command - Smaller images for mobile (480w: ~15KB) vs desktop (1280w: ~100KB) + - All generated files placed in `assets/images/generated/` - ✅ **Lazy loading**: Below-the-fold images load on demand - ✅ **Explicit image dimensions**: All images have width/height attributes - **Why?** Prevents layout shift (CLS) during page load diff --git a/Justfile b/Justfile index 46c0189..c049eae 100644 --- a/Justfile +++ b/Justfile @@ -12,28 +12,23 @@ # - imagemagick, pngquant, optipng: Image optimization tools # # Quick Start: -# just # Show all available commands -# just dev # Start development server -# just lighthouse # Run performance audit -# just perf # Quick performance score +# flox activate # Enter development environment +# flox services start # Start development server (http://localhost:8888) +# just # Show all available commands +# just lighthouse # Run performance audit +# just perf # Quick performance score +# flox services stop # Stop development server # # Available Commands: # -# Development: -# just dev - Start livereload server on http://localhost:8888 -# # Performance Testing (Lighthouse): # just lighthouse - Standard Lighthouse audit (opens HTML report) # just lighthouse-full - Comprehensive desktop audit # just lighthouse-mobile - Mobile performance audit # just perf - Quick performance score check (84/100 baseline) # -# All Lighthouse commands automatically: -# - Start dev server in background -# - Run the audit -# - Generate HTML and JSON reports -# - Open report in browser (except perf) -# - Stop server when done +# Note: Ensure dev server is running (flox services start) before +# running Lighthouse commands # # Image Optimization: # just optimize-images - Optimize all PNG images in assets/images/ @@ -41,9 +36,14 @@ # just generate-responsive-images - Generate 480w, 768w, 1024w versions of # background images for responsive loading # Creates WebP versions optimized for mobile +# All generated files placed in assets/images/generated/ +# just generate-favicons - Generate all favicon and app icons from +# planetnix-logo-small.png (16x16, 32x32, 180x180, +# 192x192, 512x512, favicon.ico) +# just regenerate-all-images - Regenerate ALL optimized images from source +# Creates WebP versions of all PNGs + responsive sizes # # Utilities: -# just info - Show Flox environment information # just clean - Remove all generated Lighthouse reports # # Report Files (all gitignored): @@ -53,47 +53,50 @@ # lighthouse-perf.json - Performance score only # # Example Workflow: -# just info # Check environment +# flox activate # Enter environment (shows info + commands) +# flox services start # Start dev server # just lighthouse # Run audit # just lighthouse-mobile # Test mobile +# flox services stop # Stop dev server # just clean # Clean up reports # # Notes: # - Lighthouse runs via 'npx lighthouse' for cross-platform compatibility # - First run will auto-download Lighthouse (~1 minute) # - Subsequent runs are instant -# - Dev server runs on http://localhost:8888 -# - Helper recipes (start-server-bg, stop-server) are internal utilities +# - Dev server runs on http://localhost:8888 (managed by Flox services) # # ============================================================================ -# Default recipe - show available commands -@_default: - just --list --unsorted - -# Start the development server -dev: - @echo "🚀 Starting development server on http://localhost:8888" - flox activate -- livereload --port 8888 +# Default recipe - show environment info and available commands +_default: + @echo "📦 Environment Information:" + @echo "" + @flox list + @echo "" + @echo "🔗 Dev Server: http://localhost:8888" + @echo "" + @echo "📋 Available Commands:" + @echo "" + @just --list --unsorted # Run Lighthouse performance audit -lighthouse: start-server-bg +lighthouse: @echo "🔍 Running Lighthouse performance audit..." @sleep 3 - flox activate -- npx lighthouse http://localhost:8888 \ + @flox activate -- npx lighthouse http://localhost:8888 \ --output html \ --output json \ --output-path ./lighthouse-report \ --view \ --chrome-flags="--headless" @echo "✅ Lighthouse report generated: lighthouse-report.html" - @just stop-server # Run Lighthouse with detailed metrics -lighthouse-full: start-server-bg +lighthouse-full: @echo "🔍 Running comprehensive Lighthouse audit..." @sleep 3 - flox activate -- npx lighthouse http://localhost:8888 \ + @flox activate -- npx lighthouse http://localhost:8888 \ --output html \ --output json \ --output-path ./lighthouse-report-full \ @@ -102,13 +105,12 @@ lighthouse-full: start-server-bg --view \ --chrome-flags="--headless" @echo "✅ Full Lighthouse report generated: lighthouse-report-full.html" - @just stop-server # Run Lighthouse for mobile -lighthouse-mobile: start-server-bg +lighthouse-mobile: @echo "📱 Running Lighthouse mobile audit..." @sleep 3 - flox activate -- npx lighthouse http://localhost:8888 \ + @flox activate -- npx lighthouse http://localhost:8888 \ --output html \ --output json \ --output-path ./lighthouse-mobile \ @@ -116,13 +118,12 @@ lighthouse-mobile: start-server-bg --view \ --chrome-flags="--headless" @echo "✅ Mobile Lighthouse report generated: lighthouse-mobile.html" - @just stop-server # Quick performance check (just scores, no report) -perf: start-server-bg +perf: @echo "⚡ Running quick performance check..." @sleep 3 - flox activate -- npx lighthouse http://localhost:8888 \ + @flox activate -- npx lighthouse http://localhost:8888 \ --only-categories=performance \ --output json \ --output-path ./lighthouse-perf.json \ @@ -130,21 +131,6 @@ perf: start-server-bg --chrome-flags="--headless" @echo "📊 Performance Score:" @flox activate -- node -e "const data = require('./lighthouse-perf.json'); console.log(' Performance: ' + Math.round(data.categories.performance.score * 100) + '/100');" - @just stop-server - -# Start server in background (helper) -start-server-bg: - @echo "🔧 Starting server in background..." - @flox activate -- livereload --port 8888 > /dev/null 2>&1 & echo $$! > .server.pid - @sleep 2 - -# Stop background server (helper) -stop-server: - @if [ -f .server.pid ]; then \ - echo "🛑 Stopping server..."; \ - kill `cat .server.pid` 2>/dev/null || true; \ - rm .server.pid; \ - fi # Clean up generated reports clean: @@ -173,24 +159,33 @@ optimize-images: # Generate responsive image sizes for background images # Creates 480w, 768w, and 1024w versions of specified images for responsive loading # Original 1280w images are preserved +# All generated files are placed in assets/images/generated/ generate-responsive-images: @echo "🖼️ Generating responsive image sizes..." + @mkdir -p assets/images/generated @cd assets/images && \ for img in location-bg about-bg; do \ echo " Processing $${img}..."; \ if [ -f "$${img}.png" ]; then \ echo " Creating 480w version..."; \ - sips -z 320 480 "$${img}.png" --out "$${img}-480w.png" > /dev/null 2>&1; \ + sips -z 320 480 "$${img}.png" --out "generated/$${img}-480w.png" > /dev/null 2>&1; \ echo " Creating 768w version..."; \ - sips -z 512 768 "$${img}.png" --out "$${img}-768w.png" > /dev/null 2>&1; \ + sips -z 512 768 "$${img}.png" --out "generated/$${img}-768w.png" > /dev/null 2>&1; \ echo " Creating 1024w version..."; \ - sips -z 682 1024 "$${img}.png" --out "$${img}-1024w.png" > /dev/null 2>&1; \ + sips -z 682 1024 "$${img}.png" --out "generated/$${img}-1024w.png" > /dev/null 2>&1; \ else \ echo " ⚠️ $${img}.png not found, skipping"; \ fi; \ done && \ echo " Optimizing resized PNGs..." && \ - just optimize-images > /dev/null && \ + cd generated && \ + for png in *-{480,768,1024}w.png; do \ + if [ -f "$$png" ]; then \ + flox activate -- pngquant --quality=65-80 --speed 1 --force "$$png" -o "$${png%.png}-temp.png" && \ + flox activate -- optipng -o2 "$${png%.png}-temp.png" && \ + mv "$${png%.png}-temp.png" "$$png"; \ + fi; \ + done && \ echo " Converting to WebP..." && \ for img in location-bg about-bg; do \ for size in 480 768 1024; do \ @@ -202,12 +197,58 @@ generate-responsive-images: @echo "✅ Responsive images generated" @echo "" @echo "📊 File sizes created:" - @cd assets/images && ls -lh *-{480,768,1024}w.webp 2>/dev/null || echo "No responsive images found" + @cd assets/images/generated && ls -lh *-{480,768,1024}w.webp 2>/dev/null || echo "No responsive images found" -# Show current environment info -info: - @echo "📦 Environment Information:" +# Generate all favicon and app icon sizes from planetnix-logo-small.png +# Creates all required icon sizes in assets/images/generated/ +# Sizes: favicon.ico, 16x16, 32x32, apple-touch-icon (180x180), android-chrome (192x192, 512x512) +generate-favicons: + @echo "🎨 Generating favicons and app icons from planetnix-logo-small.png..." + @mkdir -p assets/images/generated + @cd assets/images && \ + if [ ! -f "planetnix-logo-small.png" ]; then \ + echo "❌ Error: planetnix-logo-small.png not found in assets/images/"; \ + exit 1; \ + fi && \ + echo " Creating favicon-16x16.png..." && \ + flox activate -- magick planetnix-logo-small.png -resize 16x16 generated/favicon-16x16.png && \ + echo " Creating favicon-32x32.png..." && \ + flox activate -- magick planetnix-logo-small.png -resize 32x32 generated/favicon-32x32.png && \ + echo " Creating apple-touch-icon.png (180x180)..." && \ + flox activate -- magick planetnix-logo-small.png -resize 180x180 generated/apple-touch-icon.png && \ + echo " Creating android-chrome-192x192.png..." && \ + flox activate -- magick planetnix-logo-small.png -resize 192x192 generated/android-chrome-192x192.png && \ + echo " Creating android-chrome-512x512.png..." && \ + flox activate -- magick planetnix-logo-small.png -resize 512x512 generated/android-chrome-512x512.png && \ + echo " Creating favicon.ico (multi-resolution)..." && \ + flox activate -- magick planetnix-logo-small.png -resize 16x16 -resize 32x32 -resize 48x48 generated/favicon.ico + @echo "✅ All favicons and app icons generated" @echo "" - @flox list + @echo "📊 Generated files:" + @cd assets/images/generated && ls -lh favicon* apple-touch-icon.png android-chrome-*.png 2>/dev/null + +# Regenerate all optimized images from source images +# This command: +# 1. Finds all PNG source images in assets/images/ (excluding generated/ folder) +# 2. Creates WebP versions of all source PNGs in generated/ +# 3. Generates responsive sizes (480w, 768w, 1024w) for background images +regenerate-all-images: + @echo "🖼️ Regenerating all optimized images..." + @mkdir -p assets/images/generated @echo "" - @echo "🔗 Dev Server: http://localhost:8888" + @echo "📸 Converting source PNGs to WebP..." + @cd assets/images && \ + for img in *.png; do \ + if [ -f "$$img" ] && [ "$$img" != "generated" ]; then \ + echo " Converting $$img to WebP..."; \ + flox activate -- cwebp -q 90 "$$img" -o "generated/$${img%.png}.webp" 2>&1 | grep -E "(Saving|Output)" || true; \ + fi; \ + done + @echo "" + @echo "📐 Generating responsive sizes for background images..." + @just generate-responsive-images + @echo "" + @echo "✅ All optimized images regenerated" + @echo "" + @echo "📊 Generated files:" + @cd assets/images/generated && ls -lh *.webp 2>/dev/null | head -20 || echo "No generated images found" diff --git a/README.md b/README.md index 25cac01..940e55f 100644 --- a/README.md +++ b/README.md @@ -29,11 +29,16 @@ cd website flox activate # 3. Start the development server -just dev +flox services start ``` That's it! Open http://localhost:8888 in your browser and start coding. Changes reload automatically. +When you're done: +```bash +flox services stop +``` + ## 🛠️ Technology Stack ### Core Technologies @@ -56,20 +61,24 @@ That's it! Open http://localhost:8888 in your browser and start coding. Changes We use [Just](https://github.com/casey/just) for common development tasks. Run `just` to see all available commands: ```bash -# Development -just dev # Start development server on http://localhost:8888 -just info # Show environment information +# Development Server (managed by Flox) +flox services start # Start development server on http://localhost:8888 +flox services stop # Stop development server +flox services status # Check server status -# Performance Testing +# Performance Testing (requires server to be running) just lighthouse # Run full Lighthouse audit (opens HTML report) just lighthouse-mobile # Test mobile performance just perf # Quick performance score check # Image Optimization -just optimize-images # Optimize all PNG images +just optimize-images # Optimize all PNG images in place just generate-responsive-images # Create responsive sizes (480w, 768w, 1024w) +just generate-favicons # Generate all favicon and app icons +just regenerate-all-images # Regenerate ALL optimized images from source # Utilities +just # Show environment info and available commands just clean # Remove generated reports ``` @@ -82,7 +91,8 @@ planetnix-website/ │ ├── css/ │ │ └── pico.min.css # Pico CSS framework │ ├── fonts/ # Local fonts (Geist 400/700, Geist Mono 400) -│ ├── images/ # Optimized images and icons +│ ├── images/ # Source images and icons +│ │ └── generated/ # Generated images (WebP, responsive sizes) │ └── js/ # JavaScript (if needed) ├── Justfile # Command runner recipes ├── .github/workflows/ # CI/CD automation @@ -106,10 +116,13 @@ We take performance seriously. Here's what we've optimized: ### Optimizations Applied - **Images**: Optimized from 2.3 MB → 556 KB (76.6% reduction using pngquant + optipng) + - Source PNGs stored in `assets/images/` + - Generated WebP and responsive sizes in `assets/images/generated/` + - Regenerate all: `just regenerate-all-images` - **Responsive Images**: Multiple sizes (480w, 768w, 1024w, 1280w) for adaptive loading - **Why?** Saves 142 KB on mobile by serving appropriately sized images - Mobile devices load small versions (~15KB) instead of full-size (~100KB) - - Regenerate with: `just generate-responsive-images` + - Regenerate responsive sizes: `just generate-responsive-images` - **Initial Load**: Only 139 KB of images load initially (lazy loading for below-the-fold content) - **Explicit Image Dimensions**: All images have width/height to prevent layout shift - **Why?** CLS score of 0 (perfect!) - no content jumping during load @@ -154,13 +167,13 @@ We take performance seriously. Here's what we've optimized: 3. **Make your changes** ```bash flox activate - just dev # Start the dev server + flox services start # Start the dev server # Edit files, see changes live! ``` 4. **Test your changes** ```bash - just perf # Check performance impact + just perf # Check performance impact (server must be running) ``` 5. **Commit and push** @@ -206,8 +219,10 @@ Our CI/CD pipeline automatically: Test locally before pushing: ```bash +flox services start # Ensure server is running just perf # Quick performance check just lighthouse # Full audit with HTML report +flox services stop # Stop server when done ``` ## 📚 Learn More diff --git a/assets/images/bluesky.svg b/assets/images/bluesky.svg new file mode 100644 index 0000000..8b48bb5 --- /dev/null +++ b/assets/images/bluesky.svg @@ -0,0 +1,10 @@ + diff --git a/assets/images/about-bg-1024w.png b/assets/images/generated/about-bg-1024w.png similarity index 100% rename from assets/images/about-bg-1024w.png rename to assets/images/generated/about-bg-1024w.png diff --git a/assets/images/about-bg-1024w.webp b/assets/images/generated/about-bg-1024w.webp similarity index 100% rename from assets/images/about-bg-1024w.webp rename to assets/images/generated/about-bg-1024w.webp diff --git a/assets/images/about-bg-480w.png b/assets/images/generated/about-bg-480w.png similarity index 100% rename from assets/images/about-bg-480w.png rename to assets/images/generated/about-bg-480w.png diff --git a/assets/images/about-bg-480w.webp b/assets/images/generated/about-bg-480w.webp similarity index 100% rename from assets/images/about-bg-480w.webp rename to assets/images/generated/about-bg-480w.webp diff --git a/assets/images/about-bg-768w.png b/assets/images/generated/about-bg-768w.png similarity index 100% rename from assets/images/about-bg-768w.png rename to assets/images/generated/about-bg-768w.png diff --git a/assets/images/about-bg-768w.webp b/assets/images/generated/about-bg-768w.webp similarity index 100% rename from assets/images/about-bg-768w.webp rename to assets/images/generated/about-bg-768w.webp diff --git a/assets/images/about-bg.webp b/assets/images/generated/about-bg.webp similarity index 100% rename from assets/images/about-bg.webp rename to assets/images/generated/about-bg.webp diff --git a/assets/images/generated/android-chrome-192x192.png b/assets/images/generated/android-chrome-192x192.png new file mode 100644 index 0000000..2f9868a Binary files /dev/null and b/assets/images/generated/android-chrome-192x192.png differ diff --git a/assets/images/generated/android-chrome-512x512.png b/assets/images/generated/android-chrome-512x512.png new file mode 100644 index 0000000..7f7b8df Binary files /dev/null and b/assets/images/generated/android-chrome-512x512.png differ diff --git a/assets/images/generated/apple-touch-icon.png b/assets/images/generated/apple-touch-icon.png new file mode 100644 index 0000000..2f9e175 Binary files /dev/null and b/assets/images/generated/apple-touch-icon.png differ diff --git a/assets/images/generated/favicon-16x16.png b/assets/images/generated/favicon-16x16.png new file mode 100644 index 0000000..d582f97 Binary files /dev/null and b/assets/images/generated/favicon-16x16.png differ diff --git a/assets/images/generated/favicon-32x32.png b/assets/images/generated/favicon-32x32.png new file mode 100644 index 0000000..0e83187 Binary files /dev/null and b/assets/images/generated/favicon-32x32.png differ diff --git a/assets/images/generated/favicon.ico b/assets/images/generated/favicon.ico new file mode 100644 index 0000000..6fa2c6d Binary files /dev/null and b/assets/images/generated/favicon.ico differ diff --git a/assets/images/grid.webp b/assets/images/generated/grid.webp similarity index 100% rename from assets/images/grid.webp rename to assets/images/generated/grid.webp diff --git a/assets/images/hero-moon.webp b/assets/images/generated/hero-moon.webp similarity index 100% rename from assets/images/hero-moon.webp rename to assets/images/generated/hero-moon.webp diff --git a/assets/images/location-bg-1024w.png b/assets/images/generated/location-bg-1024w.png similarity index 100% rename from assets/images/location-bg-1024w.png rename to assets/images/generated/location-bg-1024w.png diff --git a/assets/images/location-bg-1024w.webp b/assets/images/generated/location-bg-1024w.webp similarity index 100% rename from assets/images/location-bg-1024w.webp rename to assets/images/generated/location-bg-1024w.webp diff --git a/assets/images/location-bg-480w.png b/assets/images/generated/location-bg-480w.png similarity index 100% rename from assets/images/location-bg-480w.png rename to assets/images/generated/location-bg-480w.png diff --git a/assets/images/location-bg-480w.webp b/assets/images/generated/location-bg-480w.webp similarity index 100% rename from assets/images/location-bg-480w.webp rename to assets/images/generated/location-bg-480w.webp diff --git a/assets/images/location-bg-768w.png b/assets/images/generated/location-bg-768w.png similarity index 100% rename from assets/images/location-bg-768w.png rename to assets/images/generated/location-bg-768w.png diff --git a/assets/images/location-bg-768w.webp b/assets/images/generated/location-bg-768w.webp similarity index 100% rename from assets/images/location-bg-768w.webp rename to assets/images/generated/location-bg-768w.webp diff --git a/assets/images/location-bg.webp b/assets/images/generated/location-bg.webp similarity index 100% rename from assets/images/location-bg.webp rename to assets/images/generated/location-bg.webp diff --git a/assets/images/generated/speaker_kelsey_hightower.webp b/assets/images/generated/speaker_kelsey_hightower.webp new file mode 100644 index 0000000..c348998 Binary files /dev/null and b/assets/images/generated/speaker_kelsey_hightower.webp differ diff --git a/assets/images/generated/speaker_priya_ananthasankar.webp b/assets/images/generated/speaker_priya_ananthasankar.webp new file mode 100644 index 0000000..3ccfaa4 Binary files /dev/null and b/assets/images/generated/speaker_priya_ananthasankar.webp differ diff --git a/assets/images/generated/speaker_rok_garbas.webp b/assets/images/generated/speaker_rok_garbas.webp new file mode 100644 index 0000000..cda710c Binary files /dev/null and b/assets/images/generated/speaker_rok_garbas.webp differ diff --git a/assets/images/generated/speaker_ron_efroni.webp b/assets/images/generated/speaker_ron_efroni.webp new file mode 100644 index 0000000..491ba23 Binary files /dev/null and b/assets/images/generated/speaker_ron_efroni.webp differ diff --git a/assets/images/generated/speaker_stormy_peters.webp b/assets/images/generated/speaker_stormy_peters.webp new file mode 100644 index 0000000..2e98336 Binary files /dev/null and b/assets/images/generated/speaker_stormy_peters.webp differ diff --git a/assets/images/mastodon.svg b/assets/images/mastodon.svg new file mode 100644 index 0000000..2ea0ca8 --- /dev/null +++ b/assets/images/mastodon.svg @@ -0,0 +1,10 @@ + diff --git a/assets/images/planetnix-logo-small.png b/assets/images/planetnix-logo-small.png new file mode 100644 index 0000000..36b6eb7 Binary files /dev/null and b/assets/images/planetnix-logo-small.png differ diff --git a/assets/images/speaker_kelsey_hightower.png b/assets/images/speaker_kelsey_hightower.png index 1b8b932..842f890 100644 Binary files a/assets/images/speaker_kelsey_hightower.png and b/assets/images/speaker_kelsey_hightower.png differ diff --git a/assets/images/speaker_kelsey_hightower.webp b/assets/images/speaker_kelsey_hightower.webp deleted file mode 100644 index 216cdb9..0000000 Binary files a/assets/images/speaker_kelsey_hightower.webp and /dev/null differ diff --git a/assets/images/speaker_priya_ananthasankar.png b/assets/images/speaker_priya_ananthasankar.png index d609822..0cd44ef 100644 Binary files a/assets/images/speaker_priya_ananthasankar.png and b/assets/images/speaker_priya_ananthasankar.png differ diff --git a/assets/images/speaker_priya_ananthasankar.webp b/assets/images/speaker_priya_ananthasankar.webp deleted file mode 100644 index 7c0a09d..0000000 Binary files a/assets/images/speaker_priya_ananthasankar.webp and /dev/null differ diff --git a/assets/images/speaker_rok_garbas.png b/assets/images/speaker_rok_garbas.png index cb5357a..c827e18 100644 Binary files a/assets/images/speaker_rok_garbas.png and b/assets/images/speaker_rok_garbas.png differ diff --git a/assets/images/speaker_rok_garbas.webp b/assets/images/speaker_rok_garbas.webp deleted file mode 100644 index 1507767..0000000 Binary files a/assets/images/speaker_rok_garbas.webp and /dev/null differ diff --git a/assets/images/speaker_ron_efroni.png b/assets/images/speaker_ron_efroni.png index bb80143..a743d53 100644 Binary files a/assets/images/speaker_ron_efroni.png and b/assets/images/speaker_ron_efroni.png differ diff --git a/assets/images/speaker_ron_efroni.webp b/assets/images/speaker_ron_efroni.webp deleted file mode 100644 index 9d7535f..0000000 Binary files a/assets/images/speaker_ron_efroni.webp and /dev/null differ diff --git a/assets/images/speaker_stormy_peters.webp b/assets/images/speaker_stormy_peters.webp deleted file mode 100644 index cdc4bac..0000000 Binary files a/assets/images/speaker_stormy_peters.webp and /dev/null differ diff --git a/assets/images/twitter.svg b/assets/images/twitter.svg new file mode 100644 index 0000000..2719cb2 --- /dev/null +++ b/assets/images/twitter.svg @@ -0,0 +1,3 @@ + diff --git a/index.html b/index.html index 8429b8e..6520deb 100644 --- a/index.html +++ b/index.html @@ -8,13 +8,13 @@
- Planet Nix is part of the SCALE - conference. Either a full SCALE Pass or Expo Pass will provide - entrance to Planet Nix. -
- -- As you prepare for the event we'd like to encourage all attendees to download - any important repositories to their local machines and prepare their API-Keys - beforehand as we will get rate limited by some organizations. The Nix manual - shows how to configure nix to use with access-tokens. For GitHub for example we - recommend a fine-grained token with no extra account permissions, as it will be - only used for authentication purposes. -
- -- We are actively looking for volunteers for before, during and after - the event. If you are interested, please reach out to planetnix@flox.dev -
- -- Yes, you can view the livestream on the SCaLE Youtube - Channel. -
- -- Yes! The website source is at: https://github.com/planetnix/website. -
- -- An Unconference is all about you taking the lead. No predetermined - schedules or set topics. Have a burning question or exciting idea - about Nix? Grab a group, snag a table, and dive into the - conversation. This is your time to connect with like-minded - individuals and discuss whatever you're passionate about. -
- -- The best information can be found on the Visit - Pasadena website. -
- If you are coming from LAX, it is possible to reach the convention center via public transportation in approximately 90 minutes. - Head to Terminal B Lower Level and take the FlyAway Bus to Union - Station. Take the Metro A Line to Memorial Park Station or - Del Mar Station, both stations are 0.4 miles away from the - convention center and about a ten minute walk. -
-- There are a number of ways to get to the convention center by - car. See the Visit - Pasadena site for the most accurate information. There are - several parking structures around the convention center with a - daily flat rate of $15. -
-- Head to your nearest metro stop and take the metro to Union - Station. Take the Metro A Line to Memorial Park Station or - Del Mar Station, both stations are 0.4 miles away from the - convention center and about a ten minute walk. -
- - ++ The best information can be found on the Visit + Pasadena website. +
+++By plane
++ If you are coming from LAX, it is possible to reach the convention center via public transportation in approximately 90 minutes. + Head to Terminal B Lower Level and take the FlyAway Bus to Union + Station. Take the Metro A Line to Memorial Park Station or + Del Mar Station, both stations are 0.4 miles away from the + convention center and about a ten minute walk. +
+By car
++ There are a number of ways to get to the convention center by + car. See the Visit + Pasadena site for the most accurate information. There are + several parking structures around the convention center with a + daily flat rate of $15. +
+By metro
++ Head to your nearest metro stop and take the metro to Union + Station. Take the Metro A Line to Memorial Park Station or + Del Mar Station, both stations are 0.4 miles away from the + convention center and about a ten minute walk. +
+