fix(website): critical SEO fixes - schema version, FAQ & HowTo structured data (#142)

* 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
This commit is contained in:
Jatin K Malik
2026-02-05 17:01:19 -08:00
committed by GitHub
parent 7a1c42aae6
commit ab47329706
3 changed files with 117 additions and 4 deletions
+10 -1
View File
@@ -32,11 +32,17 @@ jobs:
filters: |
web:
- 'web/**'
- '.github/workflows/**'
python:
- 'src/**'
- 'tests/**'
- 'pyproject.toml'
- 'setup.py'
- 'setup.cfg'
- 'requirements*.txt'
- 'Makefile'
- '.pre-commit-config.yaml'
- '.github/workflows/**'
- name: Check if website should deploy
id: deploy_check
run: |
@@ -54,6 +60,8 @@ jobs:
python-lint:
name: 🔍 Lint Python
runs-on: ubuntu-latest
needs: changes
if: needs.changes.outputs.python == 'true'
steps:
- uses: actions/checkout@v4
@@ -83,7 +91,8 @@ jobs:
python-test:
name: 🧪 Test Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
needs: python-lint
needs: [changes, python-lint]
if: needs.changes.outputs.python == 'true'
strategy:
fail-fast: false
matrix:
+1 -1
View File
@@ -2,7 +2,7 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://vocalinux.com/</loc>
<lastmod>2026-01-29</lastmod>
<lastmod>2026-02-05</lastmod>
<changefreq>monthly</changefreq>
<priority>1.0</priority>
</url>
+106 -2
View File
@@ -120,7 +120,7 @@ export default function RootLayout({
"priceCurrency": "USD"
},
"description": "Free, open-source voice dictation for Linux. 100% offline with Whisper AI and VOSK. Works with X11 and Wayland.",
"softwareVersion": "0.0.0",
"softwareVersion": "0.4.1-alpha",
"author": {
"@type": "Person",
"name": "Jatin K Malik",
@@ -180,7 +180,111 @@ export default function RootLayout({
}
};
const jsonLd = [softwareAppJsonLd, organizationJsonLd, webSiteJsonLd];
// FAQPage schema for rich results
const faqJsonLd = {
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Is Vocalinux really 100% offline?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes! All speech recognition processing happens locally on your machine. Your voice data never leaves your computer. No internet connection is required after installation."
}
},
{
"@type": "Question",
"name": "Which Linux distributions are supported?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Vocalinux works on most modern Linux distributions including Ubuntu 22.04+, Fedora, Debian, Arch Linux, Linux Mint, Pop!_OS, and more. It supports both X11 and Wayland display servers."
}
},
{
"@type": "Question",
"name": "How do I switch between Whisper and VOSK?",
"acceptedAnswer": {
"@type": "Answer",
"text": "You can switch engines via the settings GUI or command line. Use 'vocalinux --engine whisper' or 'vocalinux --engine vosk'. Whisper is recommended for accuracy, VOSK for speed."
}
},
{
"@type": "Question",
"name": "What are the system requirements?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Minimum: 4GB RAM, dual-core CPU, Python 3.8+. For Whisper large models: 8GB+ RAM recommended. The tiny/base Whisper models and VOSK work great on modest hardware."
}
},
{
"@type": "Question",
"name": "Can I use it in languages other than English?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes! Whisper supports 99+ languages with varying accuracy levels. VOSK has models for 20+ languages. Download additional language models as needed."
}
},
{
"@type": "Question",
"name": "How do I customize the activation shortcut?",
"acceptedAnswer": {
"@type": "Answer",
"text": "The default is double-tap Ctrl. You can customize this via the GUI settings dialog or by editing ~/.config/vocalinux/config.yaml. Any key combination is supported."
}
},
{
"@type": "Question",
"name": "Is Vocalinux free?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, Vocalinux is completely free and open-source, licensed under GPL-3.0. No premium tiers, no subscriptions, no tracking — just free software."
}
}
]
};
// HowTo schema for installation guide
const howToJsonLd = {
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to Install Vocalinux on Linux",
"description": "Step-by-step guide to install Vocalinux voice dictation software on Linux",
"totalTime": "PT10M",
"estimatedCost": {
"@type": "MonetaryAmount",
"currency": "USD",
"value": "0"
},
"step": [
{
"@type": "HowToStep",
"name": "Run the installation command",
"text": "Open your terminal and run the one-liner installation command to download and install Vocalinux.",
"url": "https://vocalinux.com/#install"
},
{
"@type": "HowToStep",
"name": "Wait for installation to complete",
"text": "The installer will download dependencies, set up the environment, and download speech recognition models. This takes approximately 5-10 minutes.",
"url": "https://vocalinux.com/#install"
},
{
"@type": "HowToStep",
"name": "Launch Vocalinux",
"text": "After installation, launch Vocalinux from your terminal by typing 'vocalinux' or find it in your application menu.",
"url": "https://vocalinux.com/#install"
},
{
"@type": "HowToStep",
"name": "Start dictating",
"text": "Double-tap Ctrl to start voice dictation. Speak clearly into your microphone. Double-tap Ctrl again to stop.",
"url": "https://vocalinux.com/#install"
}
]
};
const jsonLd = [softwareAppJsonLd, organizationJsonLd, webSiteJsonLd, faqJsonLd, howToJsonLd];
return (
<html lang="en" className={`${GeistSans.variable} scroll-smooth`} suppressHydrationWarning>