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() {