diff --git a/web/public/og-image.png b/web/public/og-image.png new file mode 100644 index 0000000..2e578f3 Binary files /dev/null and b/web/public/og-image.png differ diff --git a/web/public/robots.txt b/web/public/robots.txt new file mode 100644 index 0000000..8568f6e --- /dev/null +++ b/web/public/robots.txt @@ -0,0 +1,8 @@ +# Robots.txt for Vocalinux +# https://vocalinux.com + +User-agent: * +Allow: / + +# Sitemap location +Sitemap: https://vocalinux.com/sitemap.xml diff --git a/web/public/site.webmanifest b/web/public/site.webmanifest new file mode 100644 index 0000000..b435bfc --- /dev/null +++ b/web/public/site.webmanifest @@ -0,0 +1,26 @@ +{ + "name": "Vocalinux", + "short_name": "Vocalinux", + "description": "Voice dictation for Linux, finally done right. 100% offline and privacy-focused.", + "start_url": "/", + "display": "standalone", + "background_color": "#ffffff", + "theme_color": "#7c3aed", + "icons": [ + { + "src": "/favicon-16x16.png", + "sizes": "16x16", + "type": "image/png" + }, + { + "src": "/favicon-32x32.png", + "sizes": "32x32", + "type": "image/png" + }, + { + "src": "/apple-touch-icon.png", + "sizes": "180x180", + "type": "image/png" + } + ] +} diff --git a/web/public/sitemap.xml b/web/public/sitemap.xml new file mode 100644 index 0000000..6023013 --- /dev/null +++ b/web/public/sitemap.xml @@ -0,0 +1,9 @@ + + + + https://vocalinux.com/ + 2026-01-19 + weekly + 1.0 + + diff --git a/web/public/vocalinux-microphone-off.svg b/web/public/vocalinux-microphone-off.svg new file mode 100644 index 0000000..a5f8b2f --- /dev/null +++ b/web/public/vocalinux-microphone-off.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/web/public/vocalinux-microphone-process.svg b/web/public/vocalinux-microphone-process.svg new file mode 100644 index 0000000..6fa2d08 --- /dev/null +++ b/web/public/vocalinux-microphone-process.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/web/public/vocalinux-microphone.svg b/web/public/vocalinux-microphone.svg new file mode 100644 index 0000000..a3f86d0 --- /dev/null +++ b/web/public/vocalinux-microphone.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/web/public/vocalinux.svg b/web/public/vocalinux.svg new file mode 100644 index 0000000..e6d7765 --- /dev/null +++ b/web/public/vocalinux.svg @@ -0,0 +1,5873 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/web/src/app/layout.tsx b/web/src/app/layout.tsx index 0ace30c..1fbf863 100644 --- a/web/src/app/layout.tsx +++ b/web/src/app/layout.tsx @@ -3,44 +3,55 @@ import React from "react"; import { GeistSans } from "geist/font/sans"; import { type Metadata } from "next"; import { ThemeProvider } from "@/components/theme-provider"; -import { DevtoolsProvider } from 'creatr-devtools'; + export const viewport = { width: "device-width", initialScale: 1, - maximumScale: 1 + maximumScale: 5, + themeColor: [ + { media: "(prefers-color-scheme: light)", color: "#ffffff" }, + { media: "(prefers-color-scheme: dark)", color: "#18181b" }, + ], }; + export const metadata: Metadata = { + metadataBase: new URL("https://vocalinux.com"), title: { - default: "Vocalinux - Open-Source Voice Dictation for Linux", + default: "Vocalinux - Voice Dictation for Linux, Finally Done Right", template: "%s | Vocalinux" }, - description: "Open-source offline voice dictation for Linux using Whisper models. Privacy-focused with no cloud dependencies.", + description: "Free, open-source voice dictation for Linux. 100% offline with Whisper AI. Double-tap Ctrl to start. Works everywhere - X11 & Wayland. One-click install.", applicationName: "Vocalinux", - keywords: ["voice dictation", "linux", "speech recognition", "whisper", "offline", "privacy", "x11", "wayland", "open-source"], - authors: [{ - name: "Vocalinux Team" - }], - creator: "Vocalinux Team", - publisher: "Vocalinux Team", + keywords: [ + "voice dictation linux", + "speech to text linux", + "linux voice typing", + "whisper linux", + "vosk linux", + "offline voice dictation", + "privacy voice recognition", + "speech recognition linux", + "dictation software ubuntu", + "voice typing fedora", + "wayland voice dictation", + "x11 speech to text", + "open source dictation", + "free speech recognition", + "linux accessibility", + "hands free typing linux", + "voice commands linux", + "GTK voice dictation" + ], + authors: [{ name: "Jatin K Malik", url: "https://github.com/jatinkrmalik" }], + creator: "Jatin K Malik", + publisher: "Vocalinux", icons: { - icon: [{ - url: "/favicon-16x16.png", - sizes: "16x16", - type: "image/png" - }, { - url: "/favicon-32x32.png", - sizes: "32x32", - type: "image/png" - }, { - url: "/favicon.ico", - sizes: "48x48", - type: "image/x-icon" - }], - apple: [{ - url: "/apple-touch-icon.png", - sizes: "180x180", - type: "image/png" - }] + icon: [ + { url: "/favicon-16x16.png", sizes: "16x16", type: "image/png" }, + { url: "/favicon-32x32.png", sizes: "32x32", type: "image/png" }, + { url: "/favicon.ico", sizes: "48x48", type: "image/x-icon" } + ], + apple: [{ url: "/apple-touch-icon.png", sizes: "180x180", type: "image/png" }] }, manifest: "/site.webmanifest", appleWebApp: { @@ -54,34 +65,91 @@ export const metadata: Metadata = { openGraph: { type: "website", locale: "en_US", - url: "https://github.com/jatinkrmalik/vocalinux", + url: "https://vocalinux.com", siteName: "Vocalinux", - title: "Vocalinux - Open-Source Voice Dictation for Linux", - description: "Open-source offline voice dictation for Linux using Whisper models. Works with X11 and Wayland.", + title: "Vocalinux - Voice Dictation for Linux, Finally Done Right", + description: "Free, open-source voice dictation for Linux. 100% offline & private with Whisper AI and VOSK. Double-tap Ctrl to start dictating in any app.", images: [{ - url: "https://picsum.photos/200", - width: 1280, - height: 640, - alt: "Vocalinux Open-Source Voice Dictation" + url: "/og-image.png", + width: 1200, + height: 630, + alt: "Vocalinux - Voice Dictation for Linux" }] }, twitter: { card: "summary_large_image", - title: "Vocalinux - Open-Source Voice Dictation for Linux", - description: "Open-source offline voice dictation for Linux using Whisper models. Works with X11 and Wayland.", - images: ["https://picsum.photos/200"] - } + title: "Vocalinux - Voice Dictation for Linux, Finally Done Right", + description: "Free, open-source voice dictation for Linux. 100% offline & private. Double-tap Ctrl to start dictating in any app.", + images: ["/og-image.png"], + creator: "@jatinkrmalik" + }, + robots: { + index: true, + follow: true, + googleBot: { + index: true, + follow: true, + "max-video-preview": -1, + "max-image-preview": "large", + "max-snippet": -1, + }, + }, + alternates: { + canonical: "https://vocalinux.com", + }, + category: "Technology", }; export default function RootLayout({ children }: Readonly<{ children: React.ReactNode; }>) { - return + const jsonLd = { + "@context": "https://schema.org", + "@type": "SoftwareApplication", + "name": "Vocalinux", + "applicationCategory": "UtilitiesApplication", + "operatingSystem": "Linux", + "offers": { + "@type": "Offer", + "price": "0", + "priceCurrency": "USD" + }, + "description": "Free, open-source voice dictation for Linux. 100% offline with Whisper AI and VOSK. Works with X11 and Wayland.", + "softwareVersion": "0.2.0-alpha", + "author": { + "@type": "Person", + "name": "Jatin K Malik", + "url": "https://github.com/jatinkrmalik" + }, + "url": "https://vocalinux.com", + "downloadUrl": "https://github.com/jatinkrmalik/vocalinux", + "screenshot": "https://vocalinux.com/og-image.png", + "featureList": [ + "100% offline voice recognition", + "Privacy-focused - no cloud dependencies", + "Works with all Linux applications", + "X11 and Wayland support", + "Double-tap Ctrl activation", + "Whisper AI and VOSK engines", + "Voice commands for punctuation", + "System tray integration" + ] + }; + + return ( + + +