diff --git a/web/public/apple-touch-icon.png b/web/public/apple-touch-icon.png new file mode 100644 index 0000000..0674254 Binary files /dev/null and b/web/public/apple-touch-icon.png differ diff --git a/web/public/favicon-16x16.png b/web/public/favicon-16x16.png new file mode 100644 index 0000000..39a0334 Binary files /dev/null and b/web/public/favicon-16x16.png differ diff --git a/web/public/favicon-32x32.png b/web/public/favicon-32x32.png new file mode 100644 index 0000000..cc1c665 Binary files /dev/null and b/web/public/favicon-32x32.png differ diff --git a/web/public/favicon-96x96.png b/web/public/favicon-96x96.png new file mode 100644 index 0000000..2e7e9e5 Binary files /dev/null and b/web/public/favicon-96x96.png differ diff --git a/web/public/icon-192x192.png b/web/public/icon-192x192.png new file mode 100644 index 0000000..6f3129c Binary files /dev/null and b/web/public/icon-192x192.png differ diff --git a/web/public/icon-512x512.png b/web/public/icon-512x512.png new file mode 100644 index 0000000..41e096e Binary files /dev/null and b/web/public/icon-512x512.png differ diff --git a/web/public/og-image.png b/web/public/og-image.png index 2e578f3..d40de2a 100644 Binary files a/web/public/og-image.png and b/web/public/og-image.png differ diff --git a/web/public/site.webmanifest b/web/public/site.webmanifest index 4c8d27b..d807eba 100644 --- a/web/public/site.webmanifest +++ b/web/public/site.webmanifest @@ -5,7 +5,7 @@ "start_url": "/", "display": "standalone", "background_color": "#ffffff", - "theme_color": "#7c3aed", + "theme_color": "#3CB371", "icons": [ { "src": "/favicon-16x16.png", @@ -17,10 +17,27 @@ "sizes": "32x32", "type": "image/png" }, + { + "src": "/favicon-96x96.png", + "sizes": "96x96", + "type": "image/png" + }, { "src": "/apple-touch-icon.png", "sizes": "180x180", "type": "image/png" + }, + { + "src": "/icon-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "/icon-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any maskable" } ] } diff --git a/web/public/sitemap.xml b/web/public/sitemap.xml index 6023013..6f581fb 100644 --- a/web/public/sitemap.xml +++ b/web/public/sitemap.xml @@ -2,8 +2,8 @@ https://vocalinux.com/ - 2026-01-19 - weekly + 2026-01-29 + monthly 1.0 diff --git a/web/public/vocalinux.png b/web/public/vocalinux.png new file mode 100644 index 0000000..f118534 Binary files /dev/null and b/web/public/vocalinux.png differ diff --git a/web/src/app/layout.tsx b/web/src/app/layout.tsx index c5800ad..dba9b72 100644 --- a/web/src/app/layout.tsx +++ b/web/src/app/layout.tsx @@ -48,10 +48,13 @@ export const metadata: Metadata = { publisher: "Vocalinux", icons: { icon: [ - { url: "/vocalinux.svg", type: "image/svg+xml" }, + { url: "/vocalinux.png", type: "image/png" }, + { url: "/favicon-16x16.png", sizes: "16x16", type: "image/png" }, + { url: "/favicon-32x32.png", sizes: "32x32", type: "image/png" }, + { url: "/favicon-96x96.png", sizes: "96x96", type: "image/png" }, ], - apple: [{ url: "/vocalinux.svg", type: "image/svg+xml" }], - shortcut: "/vocalinux.svg" + apple: [{ url: "/apple-touch-icon.png", sizes: "180x180", type: "image/png" }], + shortcut: "/vocalinux.png" }, manifest: "/site.webmanifest", appleWebApp: { @@ -104,7 +107,8 @@ export default function RootLayout({ }: Readonly<{ children: React.ReactNode; }>) { - const jsonLd = { + // SoftwareApplication schema + const softwareAppJsonLd = { "@context": "https://schema.org", "@type": "SoftwareApplication", "name": "Vocalinux", @@ -116,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.4.1-alpha", + "softwareVersion": "0.0.0", "author": { "@type": "Person", "name": "Jatin K Malik", @@ -137,6 +141,47 @@ export default function RootLayout({ ] }; + // Organization schema + const organizationJsonLd = { + "@context": "https://schema.org", + "@type": "Organization", + "name": "Vocalinux", + "url": "https://vocalinux.com", + "logo": "https://vocalinux.com/vocalinux.png", + "description": "Free, open-source voice dictation for Linux", + "sameAs": [ + "https://github.com/jatinkrmalik/vocalinux" + ], + "author": { + "@type": "Person", + "name": "Jatin K Malik", + "url": "https://github.com/jatinkrmalik" + } + }; + + // WebSite schema + const webSiteJsonLd = { + "@context": "https://schema.org", + "@type": "WebSite", + "name": "Vocalinux", + "url": "https://vocalinux.com", + "description": "Voice dictation for Linux, finally done right. 100% offline and privacy-focused.", + "potentialAction": { + "@type": "SearchAction", + "target": { + "@type": "EntryPoint", + "urlTemplate": "https://github.com/jatinkrmalik/vocalinux/issues?q={search_term_string}" + }, + "query-input": { + "@type": "PropertyValueSpecification", + "valueRequired": true, + "valueName": "search_term_string" + } + } + }; + + const jsonLd = [softwareAppJsonLd, organizationJsonLd, webSiteJsonLd]; + return ( diff --git a/web/src/app/page.tsx b/web/src/app/page.tsx index 9f9d1cb..b8ef7e8 100644 --- a/web/src/app/page.tsx +++ b/web/src/app/page.tsx @@ -195,7 +195,7 @@ export default function HomePage() {