From bc45108274a5cc11163003d1792236b5927df172 Mon Sep 17 00:00:00 2001 From: Jatin K Malik Date: Sun, 22 Feb 2026 23:24:43 -0800 Subject: [PATCH] feat(web): add 8 new SEO-optimized pages for organic traffic (#257) * feat(web): add 8 new SEO-optimized pages for organic traffic ## New Pages Added | Page | Purpose | SEO Value | |------|---------|-----------| | `/languages/` | Multilingual support (9+ languages) | International SEO, language-specific keywords | | `/wayland/` | Wayland support guide | Technical SEO, Linux display server queries | | `/rsi-prevention/` | Health & accessibility focus | High-intent health keywords | | `/gpu-acceleration/` | GPU/Vulkan support | Performance-focused technical SEO | | `/open-source/` | FOSS & privacy positioning | Open source community keywords | | `/autostart/` | v0.7.0 feature highlight | Linux desktop integration keywords | | `/for-developers/` | Developer use cases | Developer productivity keywords | | `/offline/` | Privacy-first positioning | Privacy-conscious user keywords | ## Navigation Improvements - Redesigned header with hamburger menu for mobile - Categorized navigation with 5 sections: Get Started, Features, Use Cases, Privacy & Ethics, Support - Added breadcrumbs for better UX and SEO - Footer with complete site map organized by category ## Technical Updates - Updated sitemap.xml with all 21 pages - All pages include JSON-LD structured data (Article schema) - Full SEO metadata with targeted keywords per page ## Build Verification - All 21 pages generated successfully (including dynamic install/[distro] pages) - Build passes without errors * feat(web): add dropdown navigation to SEO subpages - Desktop: 5 dropdown menus (Get Started, Features, Use Cases, Privacy & Ethics, Support) - Mobile: Hamburger menu with categorized pages - All pages now accessible from any SEO subpage - Click outside to close dropdowns - Breadcrumbs and footer links remain unchanged * fix(web): make SEO header dropdowns open on hover and focus * fix(web): remove dead zone between dropdown trigger and menu --- web/next-env.d.ts | 1 + web/package-lock.json | 4 +- web/public/sitemap.xml | 75 ++++- web/src/app/autostart/page.tsx | 305 +++++++++++++++++++ web/src/app/for-developers/page.tsx | 300 +++++++++++++++++++ web/src/app/gpu-acceleration/page.tsx | 355 +++++++++++++++++++++++ web/src/app/languages/page.tsx | 287 ++++++++++++++++++ web/src/app/offline/page.tsx | 309 ++++++++++++++++++++ web/src/app/open-source/page.tsx | 317 ++++++++++++++++++++ web/src/app/rsi-prevention/page.tsx | 284 ++++++++++++++++++ web/src/app/wayland/page.tsx | 273 +++++++++++++++++ web/src/components/seo-subpage-shell.tsx | 326 ++++++++++++++++----- 12 files changed, 2744 insertions(+), 92 deletions(-) create mode 100644 web/src/app/autostart/page.tsx create mode 100644 web/src/app/for-developers/page.tsx create mode 100644 web/src/app/gpu-acceleration/page.tsx create mode 100644 web/src/app/languages/page.tsx create mode 100644 web/src/app/offline/page.tsx create mode 100644 web/src/app/open-source/page.tsx create mode 100644 web/src/app/rsi-prevention/page.tsx create mode 100644 web/src/app/wayland/page.tsx diff --git a/web/next-env.d.ts b/web/next-env.d.ts index 1b3be08..830fb59 100644 --- a/web/next-env.d.ts +++ b/web/next-env.d.ts @@ -1,5 +1,6 @@ /// /// +/// // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/web/package-lock.json b/web/package-lock.json index 4650a27..e3958b3 100644 --- a/web/package-lock.json +++ b/web/package-lock.json @@ -1,12 +1,12 @@ { "name": "vocalinux-website", - "version": "0.6.0", + "version": "0.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "vocalinux-website", - "version": "0.6.0", + "version": "0.7.0", "dependencies": { "@types/node": "^20.14.10", "@types/react": "^18.3.3", diff --git a/web/public/sitemap.xml b/web/public/sitemap.xml index e8c122b..2af5421 100644 --- a/web/public/sitemap.xml +++ b/web/public/sitemap.xml @@ -2,79 +2,128 @@ https://vocalinux.com/ - 2026-02-19 + 2026-02-22 weekly 1.0 https://vocalinux.com/install/ - 2026-02-19 + 2026-02-22 weekly 0.9 https://vocalinux.com/install/ubuntu/ - 2026-02-19 + 2026-02-22 monthly 0.8 https://vocalinux.com/install/fedora/ - 2026-02-19 + 2026-02-22 monthly 0.8 https://vocalinux.com/install/arch/ - 2026-02-19 + 2026-02-22 monthly 0.8 https://vocalinux.com/compare/ - 2026-02-19 + 2026-02-22 monthly 0.8 https://vocalinux.com/changelog/ - 2026-02-19 + 2026-02-22 weekly 0.7 https://vocalinux.com/faq/ - 2026-02-19 + 2026-02-22 monthly 0.8 https://vocalinux.com/privacy/ - 2026-02-19 + 2026-02-22 monthly 0.7 https://vocalinux.com/shortcuts/ - 2026-02-19 + 2026-02-22 monthly 0.6 https://vocalinux.com/troubleshooting/ - 2026-02-19 + 2026-02-22 monthly 0.7 https://vocalinux.com/use-cases/ - 2026-02-19 + 2026-02-22 monthly 0.8 https://vocalinux.com/alternatives/ - 2026-02-19 + 2026-02-22 + monthly + 0.8 + + + + https://vocalinux.com/languages/ + 2026-02-22 + monthly + 0.8 + + + https://vocalinux.com/wayland/ + 2026-02-22 + monthly + 0.8 + + + https://vocalinux.com/rsi-prevention/ + 2026-02-22 + monthly + 0.8 + + + https://vocalinux.com/gpu-acceleration/ + 2026-02-22 + monthly + 0.8 + + + https://vocalinux.com/open-source/ + 2026-02-22 + monthly + 0.8 + + + https://vocalinux.com/autostart/ + 2026-02-22 + monthly + 0.7 + + + https://vocalinux.com/for-developers/ + 2026-02-22 + monthly + 0.8 + + + https://vocalinux.com/offline/ + 2026-02-22 monthly 0.8 diff --git a/web/src/app/autostart/page.tsx b/web/src/app/autostart/page.tsx new file mode 100644 index 0000000..674b799 --- /dev/null +++ b/web/src/app/autostart/page.tsx @@ -0,0 +1,305 @@ +import Link from "next/link"; +import { type Metadata } from "next"; +import { CheckCircle2, ChevronRight, Loader2, Play, Power, Settings, Terminal } from "lucide-react"; +import { SeoSubpageShell } from "@/components/seo-subpage-shell"; +import { absoluteUrl, buildPageMetadata } from "@/lib/seo"; + +const desktopEnvironments = [ + { + name: "GNOME", + autostartMethod: "XDG Autostart", + supported: true, + notes: "Default on Ubuntu, Fedora, Debian", + }, + { + name: "KDE Plasma", + autostartMethod: "XDG Autostart", + supported: true, + notes: "Full support via System Settings", + }, + { + name: "Xfce", + autostartMethod: "XDG Autostart", + supported: true, + notes: "Settings → Session and Startup", + }, + { + name: "Cinnamon", + autostartMethod: "XDG Autostart", + supported: true, + notes: "System Settings → Startup Applications", + }, + { + name: "MATE", + autostartMethod: "XDG Autostart", + supported: true, + notes: "Control Center → Startup Applications", + }, + { + name: "LXQt", + autostartMethod: "XDG Autostart", + supported: true, + notes: "Preferences → LXQt Settings → Autostart", + }, + { + name: "Sway", + autostartMethod: "XDG Autostart / config", + supported: true, + notes: "Use dex or exec in config", + }, + { + name: "Hyprland", + autostartMethod: "XDG Autostart / config", + supported: true, + notes: "exec-once in config or XDG", + }, +]; + +const howItWorks = [ + { + step: 1, + title: "Enable in Vocalinux", + description: "Open Vocalinux and enable 'Start on Login' via the tray menu or Settings dialog.", + code: null, + }, + { + step: 2, + title: "Desktop Entry Created", + description: "Vocalinux creates a .desktop file in your autostart directory:", + code: "~/.config/autostart/vocalinux.desktop", + }, + { + step: 3, + title: "Auto-launch on Login", + description: "Your desktop environment reads this file and launches Vocalinux when you log in.", + code: null, + }, +]; + +const managementMethods = [ + { + method: "System Tray", + description: "Right-click the Vocalinux tray icon → Start on Login", + icon: Power, + }, + { + method: "Settings Dialog", + description: "Open Settings → General → Start on Login", + icon: Settings, + }, + { + method: "Command Line", + description: "Create/remove the autostart file manually", + icon: Terminal, + }, +]; + +export const metadata: Metadata = buildPageMetadata({ + title: "Autostart Voice Dictation on Linux Login | Vocalinux", + description: + "Configure Vocalinux to start automatically when you log in to Linux. XDG autostart support for GNOME, KDE, Xfce, and all major desktop environments.", + path: "/autostart", + keywords: [ + "Linux autostart voice dictation", + "auto start on login Linux", + "XDG autostart desktop entry", + "GNOME startup applications", + "KDE autostart", + "voice dictation auto launch", + "Linux desktop autostart", + ], +}); + +export default function AutostartPage() { + const articleJsonLd = { + "@context": "https://schema.org", + "@type": "Article", + headline: "Autostart Voice Dictation on Linux Login", + description: + "How to configure Vocalinux to start automatically on Linux login. XDG autostart guide for all desktop environments.", + dateModified: "2026-02-22", + author: { + "@type": "Person", + name: "Jatin K Malik", + url: "https://github.com/jatinkrmalik", + }, + publisher: { + "@type": "Organization", + name: "Vocalinux", + logo: { + "@type": "ImageObject", + url: absoluteUrl("/vocalinux.png"), + }, + }, + mainEntityOfPage: absoluteUrl("/autostart"), + }; + + return ( + +