0a406b5d7383f50f49fce372dcaca4e15435fbf8
4
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
0d9c488d82 |
fix: optimize PageSpeed Insights performance (#115)
* fix: optimize PageSpeed Insights performance This commit addresses several PageSpeed Insights issues to improve the performance score from 56 to a target of 90+. Changes: - Add SWC config to output modern ES2022 JavaScript, eliminating unnecessary polyfills (~12 KiB savings) - Convert vocalinux.png to WebP format (17KB vs 207KB - 92% reduction) - Add OptimizedImage component with WebP/PNG fallback support - Add _headers file for proper static asset caching (1 year cache for immutable assets) - Configure Next.js with optimizePackageImports for framer-motion and lucide-react - Fix heading hierarchy issue (Quick Install h3 -> h2) - Add console.log removal in production builds Expected improvements: - Image delivery: ~41 KiB savings - Legacy JavaScript: ~12 KiB savings - Cache lifetime: 754 KiB proper caching - Accessibility score: 98 -> 100 (heading order fix) * test: add coverage for PageSpeed optimization Add comprehensive test suite for PageSpeed Insights optimization changes: - WebP image loading tests (optimized-image.tsx) - next/image component configuration tests (next.config.js) - _headers file generation and cache header tests - Lazy loading behavior tests Includes: - Jest configuration with TypeScript support - React Testing Library setup - 54 test cases covering all PageSpeed optimization features - Build verification All tests pass: npm run test Build passes: npm run build * ci: trigger workflow * ci: trigger workflow run * ci: trigger workflow |
||
|
|
071b7b5da3 |
perf: optimize PageSpeed Insights performance score (#105) (#106)
This commit implements comprehensive performance optimizations to improve the PageSpeed Insights score from 70/100 to targeting 90+. ## Images & Assets (Est. 200+ KiB savings) - Optimize vocalinux.png: 207KB → 44KB (79% reduction) - Add WebP versions for all logo sizes (32, 64, 96, 192, 512px) - Create og-image.webp: 274KB → 176KB (36% reduction) - All WebP images provide ~92% size reduction over PNG ## JavaScript Optimization (Est. 84 KiB savings) - Lazy load react-syntax-highlighter with next/dynamic - Created CodeBlock component for async code highlighting - Reduces initial bundle size by deferring heavy syntax highlighter ## Bundle Configuration - Disable production source maps (reduces bundle size) - Add .browserslistrc targeting modern browsers (est. 12 KiB savings) - Remove legacy browser polyfills (IE11, old Android, etc.) ## Critical Rendering Path (Est. 300ms LCP improvement) - Add preconnect hint for api.github.com - Defer Google Analytics to lazyOnload strategy ## Caching Strategy - Add cache headers configuration for static assets - Cache-Control: public, max-age=31536000, immutable - Applied to _next/static/* and image assets ## Accessibility Fixes - Fix footer color contrast: text-zinc-500 → text-zinc-400 - Add prefers-reduced-motion media query support - All animations respect user motion preferences ## Expected Impact - Total estimated LCP reduction: ~1.5-2 seconds - Bundle size reduction: ~100 KB - Targeting 90+ performance score (up from 70) |
||
|
|
97aec35287 |
feat: improve SEO with favicons, optimized OG image, and enhanced schema (#99)
* feat: improve SEO with favicons, optimized OG image, and enhanced schema - Add favicon PNG assets (16x16, 32x32, 96x96) for better browser/Search display - Add apple-touch-icon (180x180) for iOS devices - Add PWA icons (192x192, 512x512) with maskable support - Optimize OG image from 6.8MB to 279KB (1200x630px) - Update web manifest with correct icons and theme color (#3CB371) - Enhance JSON-LD with Organization and WebSite schemas - Remove hardcoded version from SoftwareApplication schema - Update sitemap lastmod to 2026-01-29 and changefreq to monthly * fix: add back softwareVersion for CI sync * feat: regenerate favicons with high-res transparent image * feat: replace vocalinux.svg with vocalinux.png in web |
||
|
|
99b6fb6062 |
Website Beta v2: UI Polish and Improvements (#56)
* feat(web): Complete website overhaul for beta release Major updates to make the website beta-ready: ## Content & Design - Completely rewritten homepage with modern, catchy design - Prominent one-click installation command in hero section - Clear value proposition: 'Voice Dictation for Linux, Finally Done Right' - Trust indicators (100% Offline, Privacy First, Open Source, X11/Wayland) - Interactive demo section encouraging users to try double-tap Ctrl - Feature cards highlighting key benefits - Detailed installation section with both full and quick install options - Voice commands reference section - Speech engines comparison (Whisper AI vs VOSK) - Comprehensive FAQ section - Modern CTA section and footer ## SEO Improvements - Added comprehensive meta tags with proper descriptions - Open Graph and Twitter Card meta tags with proper images - JSON-LD structured data for SoftwareApplication schema - Added robots.txt for search engine crawling - Added sitemap.xml for better indexing - Added site.webmanifest for PWA support - Proper canonical URL and meta keywords - Author attribution and GPL-3.0 license info ## Technical - Removed unused creatr-devtools dependency - Real GitHub stars fetching from API - Improved responsive design - Better accessibility with proper aria labels - Clean, maintainable component structure The website now properly reflects the v0.2.0-alpha release features and provides a clear path for users to install and use Vocalinux. * feat(web): Add live demo, improve logo and install UX Changes: - Use actual app logo SVG image for consistent branding - Added live browser-based speech recognition demo using Web Speech API - Allows users to try voice-to-text directly in their browser - Clear indication that the demo uses cloud-based Web Speech API - Prominent call-to-action to install Vocalinux for offline experience - Redesigned one-click install box with better visual hierarchy - Left-aligned layout with clear instructions - Terminal-style command display with copy button - Added compatibility info and install time estimates - Improved footer and feature section with consistent logo usage * feat(web): Add double-tap Ctrl to trigger live demo - Added keyboard detection for double-tap Ctrl (same as the real app) - Shows visual hint 'Tap Ctrl again to start!' on first Ctrl press - Instructions updated to highlight Ctrl+Ctrl as primary activation - Click still works as alternative method - Double-tap Ctrl also stops recording when active * fix(web): Remove duplicate DictationOverlay that conflicted with LiveDemo The old DictationOverlay was still responding to double-tap Ctrl alongside the new LiveDemo component, causing two overlays to appear simultaneously. Removed the page-level useDoublePress hook and DictationOverlay since the LiveDemo now handles double-tap Ctrl detection internally. * fix(web): Improve Quick Install section layout and readability - Changed to stacked vertical layout for cleaner appearance - Command now wraps with break-all instead of horizontal scroll - Simplified compatibility text to fit better - Better spacing and padding throughout - Responsive bottom info section * fix(web): Make Quick Install box wider for better text fit Changed max-w-4xl to max-w-5xl and added horizontal padding so the curl command doesn't wrap as much on medium-sized screens. * Website beta v2: UI polish and improvements - Reorder nav links to match page section order (Demo, Features, Install) - Split install commands into 3 lines for better readability - Fix button contrast in dark mode (Install Now, Install Vocalinux) - Improve live demo mic icon and Ctrl text readability - Add gradient/border styling to version tag in header - Hide scrollbars on code blocks globally - Add favicon using vocalinux.svg - Add copy button to uninstall command - Left-align Quick Install header text - Update footer author link to X/Twitter profile |