From 85600053896a1fde32aeafbf88a12ad9ceb50503 Mon Sep 17 00:00:00 2001 From: ComputelessComputer Date: Mon, 24 Nov 2025 13:27:32 +0900 Subject: [PATCH 1/4] chores --- apps/web/src/components/github-open-source.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/src/components/github-open-source.tsx b/apps/web/src/components/github-open-source.tsx index 3d4fe8015b..c0e60c8fff 100644 --- a/apps/web/src/components/github-open-source.tsx +++ b/apps/web/src/components/github-open-source.tsx @@ -255,7 +255,7 @@ function OpenSourceButton({

Open source

{ - "Hyprnote values privacy and community, so it's been transparent from day one" + "Hyprnote values privacy and community, so it's been transparent from day one." }

Date: Mon, 24 Nov 2025 13:27:44 +0900 Subject: [PATCH 2/4] feat: add anchor points for mini-app sections --- .../src/routes/_view/product/mini-apps.tsx | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/apps/web/src/routes/_view/product/mini-apps.tsx b/apps/web/src/routes/_view/product/mini-apps.tsx index 6e73df305e..c8acc26043 100644 --- a/apps/web/src/routes/_view/product/mini-apps.tsx +++ b/apps/web/src/routes/_view/product/mini-apps.tsx @@ -75,7 +75,11 @@ function HeroSection() { function ContactsSection() { return ( -
+
+
@@ -251,7 +255,11 @@ function ContactsSection() { function CalendarSection() { return ( -
+
+
@@ -411,7 +419,11 @@ function CalendarSection() { function DailyNotesSection() { return ( -
+
+
@@ -509,7 +521,11 @@ function DailyNotesSection() { function NoteshelfSection() { return ( -
+
+
From 98fa1bc864ae8dce2fc9e0d0c9732bf057ae1e77 Mon Sep 17 00:00:00 2001 From: ComputelessComputer Date: Mon, 24 Nov 2025 13:27:49 +0900 Subject: [PATCH 3/4] feat: add upload audio and update feature links --- apps/web/src/routes/_view/index.tsx | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/apps/web/src/routes/_view/index.tsx b/apps/web/src/routes/_view/index.tsx index 8bbe99dd81..ddeb00b72d 100644 --- a/apps/web/src/routes/_view/index.tsx +++ b/apps/web/src/routes/_view/index.tsx @@ -77,12 +77,21 @@ const detailsFeatures = [ "https://ijoptyyjrfqwaqhyxkxj.supabase.co/storage/v1/object/public/public_images/hyprnote/editor.jpg", link: "/product/ai-notetaking#editor", }, + { + icon: "mdi:upload-outline", + title: "Upload Audio", + description: "Import audio files or transcripts to convert into notes", + image: + "https://ijoptyyjrfqwaqhyxkxj.supabase.co/storage/v1/object/public/public_images/hyprnote/upload-audio.jpg", + link: "/product/ai-notetaking#transcription", + }, { icon: "mdi:account-multiple-outline", title: "Contacts", description: "Organize and manage your contacts with ease", image: "https://ijoptyyjrfqwaqhyxkxj.supabase.co/storage/v1/object/public/public_images/hyprnote/contacts.jpg", + link: "/product/mini-apps#contacts", }, { icon: "mdi:calendar-outline", @@ -90,13 +99,7 @@ const detailsFeatures = [ description: "Stay on top of your schedule with integrated calendar", image: "https://ijoptyyjrfqwaqhyxkxj.supabase.co/storage/v1/object/public/public_images/hyprnote/calendar.jpg", - }, - { - icon: "mdi:upload-outline", - title: "Upload Audio", - description: "Import audio files or transcripts to convert into notes", - comingSoon: true, - link: "/product/ai-notetaking#upload", + link: "/product/mini-apps#calendar", }, { icon: "mdi:bookshelf", From ab8a69912e87745e15feac533796a1d9d56065ae Mon Sep 17 00:00:00 2001 From: ComputelessComputer Date: Mon, 24 Nov 2025 13:27:55 +0900 Subject: [PATCH 4/4] feat: add SEO metadata for changelog route --- apps/web/src/routes/_view/changelog/$slug.tsx | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/apps/web/src/routes/_view/changelog/$slug.tsx b/apps/web/src/routes/_view/changelog/$slug.tsx index 0ab492e93f..bb36568dd2 100644 --- a/apps/web/src/routes/_view/changelog/$slug.tsx +++ b/apps/web/src/routes/_view/changelog/$slug.tsx @@ -56,6 +56,39 @@ export const Route = createFileRoute("/_view/changelog/$slug")({ diffUrl, }; }, + head: ({ loaderData }) => { + if (!loaderData) return {}; + + const { changelog } = loaderData; + const currentVersion = semver.parse(changelog.version); + const isNightly = currentVersion && currentVersion.prerelease.length > 0; + + const title = `Hyprnote Changelog - Version ${changelog.version}`; + const description = `Explore what's new in Hyprnote version ${changelog.version}${isNightly ? " (Nightly)" : ""}.`; + const url = `https://hyprnote.com/changelog/${changelog.slug}`; + const ogImageUrl = `https://hyprnote.com/og?type=changelog&version=${encodeURIComponent(changelog.version)}&isNightly=${isNightly}`; + + return { + meta: [ + { title }, + { name: "description", content: description }, + { property: "og:type", content: "article" }, + { property: "og:title", content: title }, + { property: "og:description", content: description }, + { property: "og:url", content: url }, + { property: "og:image", content: ogImageUrl }, + { property: "og:image:width", content: "1200" }, + { property: "og:image:height", content: "630" }, + { name: "twitter:card", content: "summary_large_image" }, + { name: "twitter:site", content: "@tryhyprnote" }, + { name: "twitter:creator", content: "@tryhyprnote" }, + { name: "twitter:title", content: title }, + { name: "twitter:description", content: description }, + { name: "twitter:url", content: url }, + { name: "twitter:image", content: ogImageUrl }, + ], + }; + }, }); function Component() {