* docs(web): refresh screenshots for v0.15 sidebar settings UI Recapture product and settings gallery shots against the searchable sidebar settings dialog, keeping the previous asset filenames and exact pixel dimensions with wallpaper padding around each window. * fix(web): correct screenshot semantics after adversarial review Keep the existing transcription and tray images because the replacements did not show their claimed flows. Populate the Logs dialog and unlock Advanced settings so those refreshed images demonstrate the features described by the gallery. * fix(web): retake screenshots as square crops with uniform padding Resize settings dialogs to a near 1:1 window, capture with ~28px wallpaper padding on all sides, open About from the tray menu, and skip redoing the awkward XFCE system-tray asset. * docs(web): retake v0.15 screenshots on GNOME (light/dark) Window-only captures from Ubuntu/GNOME at 960x720 for settings and logs, with matching dark variants under screenshots/dark/. Replace the old Shortcuts shot with Performance to match the sidebar. * feat(web): theme-aware light/dark screenshot switching Serve paired GNOME captures and swap them with the site theme via dark:hidden / hidden dark:block. Replace Shortcuts gallery entry with Performance to match the v0.15 sidebar. * docs(web): refresh screenshots after About moves into Settings Rebase onto main brought the in-app update checker: About is now a sidebar settings page. Recapture light/dark GNOME panels at 960x720 and update gallery copy/metadata accordingly. * docs: use single screenshot source for README and website Point README images at web/public/screenshots so product shots live in one place, drop the unused resources/screenshots tree (including the old demo video and about-updates set), and replace the missing shortcuts shot with performance. * docs(web): refresh light/dark screenshots and product grid Replace the screenshot set with fresh captures for both themes, and lay out the three Product shots in a single equal-height row. * fix(web): align screenshot metadata, sizes, and theme loading Restore dictation copy for the 00-transcription asset, set width/height from the recaptured PNGs, preload only the light next/image twin when priority is set, and eager-load both theme variants by default so dark mode does not flash empty on first toggle. * fix(web): show full settings screenshot without crop Use object-contain so the homepage settings dialog fits the frame instead of object-cover clipping the sidebar.
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.