* 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
Vocalinux Website
This is the official website for Vocalinux, a voice-to-text application for Linux systems. The website is built with Next.js and can be deployed as a static site to GitHub Pages.
🚀 Quick Start
Development
npm install
npm run dev
Building for Production
npm install
npm run build
The static files will be generated in the out/ directory.
📦 Deployment to GitHub Pages
Automatic Deployment (Recommended)
- Push your changes to the
mainormasterbranch - GitHub Actions will automatically build and deploy your site to the
gh-pagesbranch - Custom Domain: The site is configured for
vocalinux.com - The site will be available at https://vocalinux.com
Manual Deployment
If you prefer to deploy manually:
-
Build the static site:
cd web npm install npm run deploy -
The build includes:
- Static HTML, CSS, and JavaScript files in
out/ .nojekyllfile for GitHub Pages compatibilityCNAMEfile pointing tovocalinux.com
- Static HTML, CSS, and JavaScript files in
Local Testing
To test the built site locally:
cd web/out
python3 -m http.server 3000
Then visit http://localhost:3000 in your browser.
🛠️ Build Scripts
npm run dev- Start development servernpm run build- Build static site for productionnpm run deploy- Build and prepare for GitHub Pages (adds .nojekyll and CNAME)npm run lint- Run ESLintnpm run typecheck- Run TypeScript type checking
📁 Project Structure
web/
├── src/
│ ├── app/
│ │ ├── layout.tsx # Root layout
│ │ └── page.tsx # Homepage
│ ├── components/
│ │ ├── dictation-overlay.tsx
│ │ ├── theme-toggle.tsx
│ │ └── ui/ # Reusable UI components
│ ├── hooks/
│ └── lib/
├── public/ # Static assets
├── out/ # Generated static files (after build)
└── package.json
🎨 Features
- Responsive Design - Works on desktop and mobile
- Dark/Light Theme - Automatic theme switching
- Modern UI - Built with Tailwind CSS and Framer Motion
- SEO Optimized - Proper meta tags and structure
- Fast Loading - Optimized static generation
🔧 Configuration
Custom Domain
If you want to use a custom domain:
-
Update the
deployscript inpackage.jsonto include your domain:"deploy": "next build && touch out/.nojekyll && echo 'yourdomain.com' > out/CNAME" -
Configure your domain's DNS to point to GitHub Pages
Base Path
If deploying to a subdirectory, update next.config.js:
const config = {
basePath: '/your-subdirectory',
// ... other config
}
🐛 Troubleshooting
Build Issues
- "Module not found": Run
npm installto ensure all dependencies are installed - TypeScript errors: Run
npm run typecheckto see detailed type errors - ESLint errors: Run
npm run lint:fixto automatically fix common issues
Deployment Issues
- 404 on GitHub Pages: Ensure
.nojekyllfile exists in theout/directory - Assets not loading: Check that
basePathis correctly configured innext.config.js - Blank page: Check browser console for JavaScript errors
📝 License
This project is licensed under the same license as the main Vocalinux project.