* web: restyle vocalinux.com to the Voca family workbench
Bring the Linux marketing site onto the same paper, ink, and teal language
as VocaHQ, VocaMac, VocaPhone, and VocaGateway. Drop the site-wide dark
mode so the canvas stays paper-only, matching the other product sites.
* web: loop the home ribbon without a gap or jump
The ticker used a stretched full-width track, so a -50% slide left an empty
right edge before snapping back. Two equal groups, each wider than the
viewport, scroll by exactly one group width.
* web: match vocahq.com ribbon speed and teal band
The looped ticker was covering six item cycles in 32s, so it raced.
It now spends 28s per cycle like vocahq.com, uses the same dark-teal
band, and pauses when the tab is hidden.
* web: drive the hero panel clock from the visitor's local time
Replace the static 11:24 mock with a 24-hour HH:MM clock in the client
timezone, updated on the minute.
* web: add official platform marks on the family cards
Use the .github brand platform SVGs (Linux, Apple, Android, Windows)
plus the HQ server mark for VocaGateway, matching vocahq.com's product row.
* web: restore a Light/Dark flip on the screenshots page
The captured GTK shots exist in both appearances. A page-local switch
defaults to prefers-color-scheme and stores a tab override. The rest of
the site stays paper-only.
* web: make the homepage CTA say Install, not Get
The button already jumps to the one-line installer. Name that action,
note that there is no account, and keep the same copy in the closer
and the mobile menu.
* web: style install commands as GTK terminals
Command boxes use a headerbar with copy, a centered title, and
window controls on the right. The prompt is user@linux:~$, not
Mac traffic-light chrome.
* web: stop repeating the engine list in the hero
The proof line, the notes window, and the tray terminal all said
the same whisper.cpp / Whisper / VOSK / Remote API line. Engines
stay on the window chips. Proof is now desktop and license facts.
The terminal shows launching into the tray.
* web: reflow copy, color prompts, and add install paths
Drop pretty/balance wrapping so titles and ledes follow the
shell width. Color the user@linux prompt. Hero terminal now
says audio stays on this machine. Ribbon adds project words.
AppImage and source-build sit under the install command.
* web: put X, Discord, and GitHub by the footer mark
Official family social marks sit next to the Vocalinux logo.
Footer columns are Product, Install, Guides, and Project.
The bottom line is Part of VocaHQ, without X11 or whisper.cpp.
* web: add hello@vocahq.com to the footer social row
The official mail mark sits with X, Discord, and GitHub and opens
the family hello@vocahq.com address.
* web: use the circular mark in the header and footer
Header and footer now use the official teal circle lockup instead
of the square app icon.
* web: ship a circular favicon and a family OG card
Favicons use the teal circle lockup. The Open Graph image is redone
in the paper workbench language with the current homepage line.
* web: set the hero to Dictate locally / In any app
Shorter couplet in the VocaHQ display size, with a matching
lede and Open Graph card.
* web: gray the hero terminal note as a comment
The second line was reading as part of the vocalinux command.
It is now a dim # comment under the prompt.
* fix(web): drop stale 100% offline copy and mark VocaWin alpha
vocalinux.com still called VocaWin planned and said the Linux app was
100% offline. Local engines stay on the machine. Remote API is opt-in.
VocaWin is developer alpha: unsigned NSIS (~12 MB) and MSI (~34 MB),
latest prerelease v0.1.0-alpha.1.
Fixes#709
* fix(web): drop leftover never-leaves claims
Open source and privacy pages still said voice data never leaves the
machine. Local engines stay local. Remote API is opt-in.
Repo links, install one-liners, and release checks now use
github.com/VocaHQ/vocalinux. The site mentions VocaHQ without a redesign.
The Codeberg mirror, personal email, and X handle are unchanged.
* feat(web): deslop marketing site with workstation craft identity
Replace generic AI SaaS landing patterns with a deliberate Linux desk
utility look: cool paper palette, Bricolage + Source Sans, solid type,
editorial feature rows, and terminal install as first-class proof.
Adds PRODUCT.md, DESIGN.md, and WEB-DESLOP-NOTES.md. Drops unused geist
and react-intersection-observer. No product claim changes.
* chore(web): drop local deslop working notes from PR
WEB-DESLOP-NOTES.md was a firstmate/session artifact, not product docs.
* fix(web): stop mobile horizontal overflow and harden viewport layout
Long install URLs expanded the page past the phone width. Constrain
terminal pre with break-all, min-w-0 columns, and overflow-x clip.
Tighten mobile hero type and full-width CTAs. Add Playwright viewport
QA script and jest checks that assert no overflow at desktop/tablet/mobile.
* refactor(web): drop browser speech preview from marketing home
Remove the cloud SpeechRecognition demo section and nav Demo link.
Keep product truth: hero install, features, screenshots, engines.
Fold shortcut/engine/audio links into the features intro.
Delete unused LiveDemo component and its unit test.
* chore(web): remove orphaned demo overlay and double-press hook
Only LiveDemo used these; gone with the browser preview section.
* feat(web): borrow PR #546 craft language into deslop home
Merge closed redesign language onto feat/web-deslop-craft: pure white
and near-black iron surfaces, emerald-committed palette, asymmetric
hero with real app screenshots, full-bleed install strip, feature bento
with tray/settings shots, and install-to-dictation steps.
Keep Bricolage + Source Sans (not Geist), no browser speech demo, and
mobile overflow guards. Update screenshots homepage expectations.
* docs(design): align DESIGN.md tokens with PR #546 iron/emerald palette
* fix(web): drop settings screenshot from installer details
Uninstall sat too far below the list once the general-settings shot
was in that column. Keep checklist, requirements, and uninstall only.
* fix(web): raise light-mode primary and footer contrast
Darken light emerald so white button text hits ~5:1 (was 3.4).
Brighten install-strip and footer secondary text for legibility.
Verified light/dark × desktop/tablet/mobile with no overflow.
* fix(web): compact feature cards to kill empty vertical space
Right-column tiles were h-full + justify-between next to a tall
screenshot, so short copy left large voids. Use content-height cards
with denser padding and inline link rows instead.
* fix(web): pair settings shot with full feature rail
Replace three orphan cards beside a tall dialog with a six-row
feature panel that stretches with the screenshot frame. Crop the
settings image with object-cover/object-top so heights match and
no void sits next to the UI shot.
* feat(web): apply homepage craft language to SEO child pages
Rewrite SeoSubpageShell chrome (fixed nav, install pill, iron footer)
to match the deslop home. Add subpage utilities and retoken all
templated child routes: borders, radii, mono kickers, single emerald
accent, terminal panels, no rainbow icon tiles or gradient cards.
* fix(web): avoid invalid @apply hover:border-primary/40 in subpage-card
* fix(web): rewrite subpage CSS without invalid Tailwind @apply
* fix(web): color comparison X icons rose-red on alternatives
Use soft rose (#c45c5c / #e08b8b) for no/cons marks so they read as
distinct from emerald yes/checks without looking like form errors.
* docs(web): move product/design docs under web/ and drop impeccable markers
Keep PRODUCT.md and DESIGN.md next to the Next app (not repo root), add
web/AGENTS.md as the entry point, and point the root AGENTS website
section at those files. Strip tool-specific schema comments.
* fix(web): use icon-only copy control on install terminal
Replace the chunky Copy/Copied chip with a quiet clipboard icon that
turns into a check on success.
* fix(web): restyle system requirements as a spec rail
Replace the nested bullet card with mono-label / value pairs under the
installer section so it matches the craft language used elsewhere.
* fix(web): center engine rows and quiet the Default badge
Align name/badge with multi-line engine details on sm+; replace the
filled green pill with a small mono outline chip.
* feat(web): overhaul SEO structure and landing pages
Add distro-specific install pages and an engine comparison hub to capture high-intent organic queries. Centralize metadata and structured data handling to improve crawl consistency, internal linking, and rich-result eligibility.
* feat(web): add subpage navigation and visual polish
Make SEO landing pages easier to discover and navigate by adding persistent subpage header/footer links to home and key routes. Refresh install and comparison pages with colorful icon-driven sections while expanding homepage footer links for stronger internal linking.
* fix(ci): make web version sync robust to schema location
CI assumed softwareVersion lived in layout.tsx, but SEO refactors moved SoftwareApplication JSON-LD to page.tsx. Update workflow sync steps to patch whichever file currently contains softwareVersion so website build and release jobs keep working.
* chore(web): remove SEO audit artifact
Drop the internal SEO audit markdown from the PR so only production website and workflow changes are included.
Bump version from 0.6.0-beta to 0.6.1-beta with installation improvements:
Version Updates:
- src/vocalinux/version.py: 0.6.0-beta → 0.6.1-beta
- install.sh: Default tag and help text updated
- web/package.json: 0.6.0 → 0.6.1
- web/src/app/layout.tsx: schema.org softwareVersion updated
- web/src/app/page.tsx: version badge updated
Documentation Updates:
- README.md: New 'What's New' section for v0.6.1-beta
- docs/UPDATE.md: Added v0.6.1-beta release notes with new features
- docs/INSTALL.md: Version references updated
- docs/RELEASE_PROCESS.md: Example commands updated
- tests/distro-testing-checklist.md: Version references updated
- src/vocalinux/main.py: Error message updated
New Features in v0.6.1-beta:
- Interactive backend selection for whisper.cpp (GPU vs CPU)
- Enhanced welcome message with testing instructions
- Simplified install commands (tag-based URLs)
- Better GPU support with proper library detection
Bug Fixes:
- Fixed bash arithmetic with set -e
- Fixed TTY detection for interactive mode
- Auto-install git if missing
- Fixed GPU installation commands
* docs: update all documentation for whisper.cpp as default engine
Comprehensive documentation update highlighting whisper.cpp as the new
default speech recognition engine:
README.md:
- Added 'Major Change: whisper.cpp is Now Default!' section
- Updated Features to highlight whisper.cpp and Vulkan GPU support
- Updated Quick Install section with engine choices
- Changed default engine from whisper to whisper_cpp in examples
- Updated configuration examples
- Updated roadmap to mark whisper.cpp as complete
docs/INSTALL.md:
- Added whisper.cpp section with performance benefits
- Updated installation options (--engine flag)
- Added GPU support matrix and Vulkan detection info
- Added installation time comparison table
- Updated system requirements (lower disk space for whisper.cpp)
docs/USER_GUIDE.md:
- Added comprehensive 'Choosing Your Engine' section
- Added GPU acceleration information
- Updated tips to mention whisper.cpp benefits
- Added model size recommendations
web/src/app/page.tsx:
- Updated hero to mention whisper.cpp (C++ optimized, Vulkan support)
- Changed installation time from ~5-10 min to ~1-2 min
- Updated Features section to mention Vulkan GPU support
- Added whisper.cpp as default engine card (3-column layout)
- Updated installation commands (--engine flags)
- Updated FAQ about switching engines
This ensures all documentation reflects whisper.cpp as the new default
and highlights its major benefits: 10x faster install, universal GPU
support, and C++ optimized performance.
* chore(release): prepare v0.6.0-beta
This release brings whisper.cpp as the new default speech recognition engine:
Version Updates:
- Bump version from 0.5.0-beta to 0.6.0-beta
- Update src/vocalinux/version.py
- Update web/package.json
Documentation Updates:
- README.md: Update all v0.5.0-beta references to v0.6.0-beta
- docs/INSTALL.md: Update version references and installation commands
- docs/UPDATE.md: Add new 'What's New' section highlighting whisper.cpp
- SECURITY.md: Update supported versions table (0.6.x now supported)
Website Updates:
- web/src/app/layout.tsx: Update softwareVersion to 0.6.0-beta
Release Highlights:
- whisper.cpp is now the default engine (10x faster install!)
- Universal GPU support via Vulkan (AMD, Intel, NVIDIA)
- C++ optimized inference with multi-threading
- ~1-2 minute installation vs ~5-10 minutes before
Testing:
- All 472 tests passing
- Black formatting clean
- Flake8 linting clean
- isort import ordering clean
* ui(website): improve hero section layout
* docs(readme): remove duplicate What's New section
This commit prepares the repository for the v0.5.0-beta release,
transitioning from alpha to beta status.
Changes made:
- Update version from 0.4.1-alpha to 0.5.0-beta in version.py
- Update Development Status classifier from Alpha to Beta in pyproject.toml and setup.py
- Update status badges from Alpha (orange) to Beta (blue) in README.md
- Update all installation command examples to use v0.5.0-beta tag
- Update release announcement from Alpha to Beta in README.md
- Add RELEASE_PROCESS.md documentation for future releases
- Update docs/INSTALL.md with new version references
- Add What's New section for v0.5.0-beta in docs/UPDATE.md
- Update SECURITY.md supported versions table
- Update website schema softwareVersion in layout.tsx
- Update website version badges in page.tsx
- Update website package.json version to 0.5.0
Testing:
- All 463 tests passing (100%)
- Version consistency verified across all files
Release process documentation added to docs/RELEASE_PROCESS.md
* fix(website): update schema version and add structured data for SEO
- Fix softwareVersion from "0.0.0" to "0.4.1-alpha" in SoftwareApplication schema
- Add FAQPage schema for rich results in search engines
- Add HowTo schema for installation guide steps
- Update sitemap.xml lastmod date to 2026-02-05
Fixes#138
* ci: skip Python builds when only web/ folder changes
- Add path filters to detect changes in web/ vs Python files
- Make python-lint and python-test jobs depend on changes job
- Skip Python CI when only web files are modified
- Expand Python path filters to include common config files
Closes#138
* 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
Release preparation for v0.4.1-alpha with the following updates:
Features:
- Language selector UI with 10 languages and auto-detection support
Bug Fixes:
- App drawer launch fix when installing from local repo (absolute path for VENV_DIR)
- Escape commit message in Detect Changes step
- Correct git fetch syntax for tag-based updates
Updated Files:
- src/vocalinux/version.py: 0.4.0-alpha → 0.4.1-alpha
- install.sh: Default tag v0.3.0-alpha → v0.4.1-alpha
- README.md: Install command version updates
- docs/INSTALL.md: Install command version updates
- docs/UPDATE.md: New v0.4.1-alpha section, moved v0.4.0-alpha to Previous Versions
- web/src/app/layout.tsx: Software version update
The website was displaying an outdated version (0.3.0-alpha) instead of
the current version (0.4.0-alpha) from src/vocalinux/version.py.
Updated version references in:
- web/src/app/page.tsx (header badge)
- web/src/app/layout.tsx (structured data)
* Add Google Analytics tracking to website
- Add GA script tags to layout.tsx head section
- Remove @next/third-parties dependency from package.json
- Use measurement ID G-7NBBNJNNQ7 for tracking
* Fix Google Analytics integration for static export
- Use Next.js Script component instead of inline scripts
- Add 'afterInteractive' strategy for optimal loading
- GA scripts now properly included in static build output
* 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
- Added complete Next.js single-page website for Vocalinux
- Configured static export with proper GitHub Pages deployment
- Added GitHub Actions workflow for automated deployment to gh-pages branch
- Configured custom domain (vocalinux.com) with CNAME file
- Added comprehensive build script with npm support
- Responsive design with dark/light theme toggle
- Modern UI components with Tailwind CSS and shadcn/ui
- Proper SEO metadata and accessibility features