"use client"; import React, { useState, useEffect, useCallback } from "react"; import { motion } from "framer-motion"; import Image from "next/image"; import { LiveDemo } from "@/components/live-demo"; import { Mic, Terminal, Lock, Zap, Laptop, Keyboard, Settings, Code, Github, Edit, Star, Download, ChevronRight, CheckCircle2, Menu, X, Copy, Check, Play, Shield, Globe, Cpu, Volume2, Sparkles, Heart, ExternalLink, } from "lucide-react"; import { ThemeToggle } from "@/components/theme-toggle"; import SyntaxHighlighter from "react-syntax-highlighter"; import { atomOneDark } from "react-syntax-highlighter/dist/esm/styles/hljs"; import { useInView } from "react-intersection-observer"; // The one-liner install command (split into three lines for display) const oneClickInstallCommand = `curl \\ -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh \\ | bash`; const oneClickInstallNoWhisper = `curl \\ -fsSL https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/install.sh \\ | bash -s -- --no-whisper`; const FeatureCard = ({ icon, title, description, }: { icon: React.ReactNode; title: string; description: string; }) => { const [ref, inView] = useInView({ triggerOnce: true, threshold: 0.1, }); return (
{icon}

{title}

{description}

); }; const CopyButton = ({ text, className = "" }: { text: string; className?: string }) => { const [copied, setCopied] = useState(false); const handleCopy = useCallback(() => { navigator.clipboard.writeText(text); setCopied(true); setTimeout(() => setCopied(false), 2000); }, [text]); return ( ); }; const FadeInSection = ({ children, delay = 0, }: { children: React.ReactNode; delay?: number; }) => { const [ref, inView] = useInView({ triggerOnce: true, threshold: 0.1, rootMargin: "0px 0px -50px 0px", }); return ( {children} ); }; export default function HomePage() { const [stars, setStars] = useState(null); const [mobileMenuOpen, setMobileMenuOpen] = useState(false); useEffect(() => { // Fetch actual GitHub stars fetch("https://api.github.com/repos/jatinkrmalik/vocalinux") .then((res) => res.json()) .then((data) => { if (data.stargazers_count) { setStars(data.stargazers_count); } }) .catch(() => { // Fallback if API fails setStars(null); }); }, []); const navLinks = [ { href: "#demo", label: "Demo" }, { href: "#features", label: "Features" }, { href: "#install", label: "Install" }, { href: "#voice-commands", label: "Commands" }, { href: "#faq", label: "FAQ" }, ]; return (
{/* Header */}
{/* Mobile menu */}
{navLinks.map((link) => ( setMobileMenuOpen(false)} > {link.label} ))} setMobileMenuOpen(false)} > GitHub
{/* Hero Section */}
{/* Animated background elements */}
{/* Badge */}
Alpha Release — Try it now!

Voice Dictation for Linux,{" "} Finally Done Right

100% offline, privacy-first voice-to-text. Double-tap Ctrl to dictate anywhere. Powered by Whisper AI & VOSK. Free & open-source.

{/* CTA Buttons */}
{/* One-Click Install Box - Redesigned */}
{/* Header */}

Quick Install

Copy & paste in your terminal

{/* Command box */}
                      $ {oneClickInstallCommand}
                    
{/* Bottom info */}

Compatible: Ubuntu, Fedora, Debian, Arch & more

No sudo required ~5-10 min
{/* Trust indicators */}
100% Offline
Privacy First
Open Source (GPL-3.0)
X11 & Wayland
{/* Demo Section - Live Interactive Demo */}

Try It Yourself

Experience voice-to-text right here in your browser. Click the microphone and start speaking!

{/* Key demo points */}
{[ { icon: , title: "Double-tap Ctrl", description: "In the real app, just double-tap Ctrl to start dictating anywhere", }, { icon: , title: "Real-time Transcription", description: "See your words appear as you speak with minimal latency", }, { icon: , title: "Audio Feedback", description: "Subtle sounds let you know when recording starts and stops", }, ].map((item, i) => (
{item.icon}

{item.title}

{item.description}

))}
{/* Features Section */}

Why Choose Vocalinux?

Finally, Linux users get the voice dictation experience they deserve — no compromises on privacy, no cloud dependencies, just pure productivity.

} title="100% Offline & Private" description="All processing happens on your machine. Your voice data never leaves your computer — complete privacy guaranteed." /> } title="Universal App Support" description="Works everywhere — terminals, browsers, IDEs, office apps, and any text input field on your Linux system." /> } title="Blazing Fast" description="Optimized for real-time transcription. Choose from Whisper AI (accurate) or VOSK (lightweight) engines." /> } title="Simple Activation" description="Double-tap Ctrl to start, double-tap again to stop. No complex keyboard shortcuts to memorize." /> } title="X11 & Wayland Support" description="Works seamlessly with both display servers. Modern Wayland and traditional X11 — we've got you covered." /> } title="Fully Configurable" description="Adjust model size, language, activation method, and more. GUI settings panel or config file — your choice." />
{/* Comparison highlight */}

The Linux Voice Gap, Solved

While macOS and Windows have had built-in voice dictation for years, Linux users have been left behind — until now.

    {[ "No more cloud services that compromise privacy", "No more janky solutions that only work in specific apps", "No more complicated setup processes", "Just install and start dictating", ].map((item, i) => (
  • {item}
  • ))}
Vocalinux
Vocalinux
Voice dictation, finally
0
Cloud calls
∞
Privacy
{/* Installation Section */}

Get Started in Seconds

One command. That's all it takes.

{/* Primary install option */}

Recommended: Full Install

Includes Whisper AI for best accuracy (~5-10 min)

{oneClickInstallCommand}
{/* Alternative install */}

Quick Install (VOSK only)

Faster install, lighter on resources (~2-3 min)

{oneClickInstallNoWhisper}
{/* What the installer does */}

What the installer does:

    {[ "Installs system dependencies", "Creates isolated virtual environment", "Downloads speech recognition models", "Sets up desktop integration", "Adds vocalinux to your PATH", "Creates application launcher", ].map((item, i) => (
  • {item}
  • ))}
{/* After install */}

After Installation

Launch Vocalinux from your terminal or application menu:

vocalinux
{/* System requirements */}

System Requirements

  • • Ubuntu 22.04+ (or equivalent)
  • • Python 3.8 or newer
  • • 4GB RAM (8GB for large models)
  • • Microphone
  • • X11 or Wayland display server

Uninstall

Clean removal in one command:

                  {`curl -fsSL \\
  https://raw.githubusercontent.com/jatinkrmalik/vocalinux/main/uninstall.sh | bash`}
                
{/* Voice Commands Section */}

Built-in Voice Commands

Go beyond basic dictation with natural voice commands for punctuation, formatting, and editing.

Punctuation & Formatting

{[ { command: '"new line"', result: "Inserts a line break" }, { command: '"period" / "full stop"', result: "Types a period (.)" }, { command: '"comma"', result: "Types a comma (,)" }, { command: '"question mark"', result: "Types a question mark (?)" }, { command: '"exclamation mark"', result: "Types an exclamation mark (!)" }, { command: '"colon"', result: "Types a colon (:)" }, { command: '"semicolon"', result: "Types a semicolon (;)" }, { command: '"new paragraph"', result: "Inserts two line breaks" }, ].map((item, i) => (
{item.command} {item.result}
))}

Editing Commands

{[ { command: '"delete that"', result: "Deletes the last phrase" }, { command: '"backspace"', result: "Deletes previous character" }, { command: '"undo"', result: "Undoes last action" }, { command: '"redo"', result: "Redoes last action" }, { command: '"select all"', result: "Selects all text" }, { command: '"copy"', result: "Copies selected text" }, { command: '"paste"', result: "Pastes from clipboard" }, { command: '"capitalize"', result: "Capitalizes next word" }, ].map((item, i) => (
{item.command} {item.result}
))}
{/* Speech Engines Section */}

Choose Your Engine

Vocalinux supports multiple speech recognition engines. Pick the one that suits your needs.

DEFAULT

Whisper AI

OpenAI's state-of-the-art speech recognition model, running locally on your machine.

    {[ "Highest accuracy available", "Multiple model sizes (tiny to large)", "Excellent multi-language support", "Best for clear, accurate transcription", ].map((item, i) => (
  • {item}
  • ))}
Model sizes: Tiny (75MB) • Base (142MB) • Small (466MB) • Medium (1.5GB) • Large (3GB)

VOSK

Lightweight, fast speech recognition engine perfect for lower-powered systems.

    {[ "Very lightweight and fast", "Low memory footprint", "Great for real-time streaming", "Good for basic transcription needs", ].map((item, i) => (
  • {item}
  • ))}
Footprint: ~50MB model, minimal CPU/RAM usage
{/* FAQ Section */}

Frequently Asked Questions

{[ { question: "Is Vocalinux really 100% offline?", answer: "Yes! All speech recognition processing happens locally on your machine. Your voice data never leaves your computer. No internet connection is required after installation (models are downloaded during setup).", }, { question: "Which Linux distributions are supported?", answer: "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.", }, { question: "How do I switch between Whisper and VOSK?", answer: '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.', }, { question: "What are the system requirements?", answer: "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.", }, { question: "Can I use it in languages other than English?", answer: "Yes! Whisper supports 99+ languages with varying accuracy levels. VOSK has models for 20+ languages. Download additional language models as needed.", }, { question: "How do I customize the activation shortcut?", answer: "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.", }, { question: "Is Vocalinux free?", answer: "Yes, Vocalinux is completely free and open-source, licensed under GPL-3.0. No premium tiers, no subscriptions, no tracking — just free software.", }, ].map((item, i) => (

{item.question}

{item.answer}
))}
{/* CTA Section */}

Ready to Ditch Your Keyboard?

Join the growing community of Linux users who have discovered the power of voice dictation. It's free, it's private, and it just works.

{/* Footer */}
); }