From ba9870a9080ac4bdcc6b291a8908d1790ab99b98 Mon Sep 17 00:00:00 2001 From: yassinehaimouch Date: Wed, 25 Jun 2025 15:00:35 +0100 Subject: update: landing-page --- apps/web/public/frame.svg | 10 ++++++++++ apps/web/public/landing-page-bg.png | Bin 0 -> 230853 bytes apps/web/public/logo.svg | 4 ++++ apps/web/src/app/globals.css | 2 +- apps/web/src/app/page.tsx | 8 ++++++++ apps/web/src/components/header.tsx | 11 ++++++++--- apps/web/src/components/landing/hero.tsx | 27 +++++++++++++++++++-------- 7 files changed, 50 insertions(+), 12 deletions(-) create mode 100644 apps/web/public/frame.svg create mode 100644 apps/web/public/landing-page-bg.png create mode 100644 apps/web/public/logo.svg (limited to 'apps/web') diff --git a/apps/web/public/frame.svg b/apps/web/public/frame.svg new file mode 100644 index 00000000..4dac68e9 --- /dev/null +++ b/apps/web/public/frame.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/web/public/landing-page-bg.png b/apps/web/public/landing-page-bg.png new file mode 100644 index 00000000..4f873945 Binary files /dev/null and b/apps/web/public/landing-page-bg.png differ diff --git a/apps/web/public/logo.svg b/apps/web/public/logo.svg new file mode 100644 index 00000000..7de330af --- /dev/null +++ b/apps/web/public/logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/web/src/app/globals.css b/apps/web/src/app/globals.css index 2169dbbc..1c8a7887 100644 --- a/apps/web/src/app/globals.css +++ b/apps/web/src/app/globals.css @@ -39,7 +39,7 @@ --sidebar-ring: 0 0% 3.9%; } .dark { - --background: 0 0% 8%; + --background: 0 0% 6%; --foreground: 0 0% 98%; --card: 0 0% 3.9%; --card-foreground: 0 0% 98%; diff --git a/apps/web/src/app/page.tsx b/apps/web/src/app/page.tsx index dcedab32..e9957e1b 100644 --- a/apps/web/src/app/page.tsx +++ b/apps/web/src/app/page.tsx @@ -1,6 +1,7 @@ import { Hero } from "@/components/landing/hero"; import { Header } from "@/components/header"; import { getWaitlistCount } from "@/lib/waitlist"; +import Image from "next/image"; // Force dynamic rendering so waitlist count updates in real-time export const dynamic = "force-dynamic"; @@ -10,6 +11,13 @@ export default async function Home() { return (
+ landing-page.bg
diff --git a/apps/web/src/components/header.tsx b/apps/web/src/components/header.tsx index 27503cd0..d99a4fc5 100644 --- a/apps/web/src/components/header.tsx +++ b/apps/web/src/components/header.tsx @@ -29,8 +29,7 @@ export function Header() { const leftContent = ( - OpenCut Logo - OpenCut + OpenCut Logo ); @@ -59,5 +58,11 @@ export function Header() { ); - return ; + return ( + + ); } diff --git a/apps/web/src/components/landing/hero.tsx b/apps/web/src/components/landing/hero.tsx index 7b4588c8..fadc043a 100644 --- a/apps/web/src/components/landing/hero.tsx +++ b/apps/web/src/components/landing/hero.tsx @@ -8,6 +8,7 @@ import Link from "next/link"; import { useEffect, useState } from "react"; import { useToast } from "@/hooks/use-toast"; import { getStars } from "@/lib/fetchGhStars"; +import Image from "next/image"; interface HeroProps { signupCount: number; @@ -82,7 +83,7 @@ export function Hero({ signupCount }: HeroProps) { }; return ( -
+
-

- The open source -

-

- video editor -

+

The First Open Source

+
+ Online +
+ frame + + Video Editor + +
+
Date: Wed, 25 Jun 2025 19:57:35 +0530 Subject: made the project app PWA and moved metadata into a sperate file app folder --- apps/web/public/browserconfig.xml | 11 +++++ apps/web/public/favicon.ico | Bin 0 -> 1150 bytes apps/web/public/icons/android-icon-144x144.png | Bin 0 -> 1076 bytes apps/web/public/icons/android-icon-192x192.png | Bin 0 -> 741 bytes apps/web/public/icons/android-icon-36x36.png | Bin 0 -> 768 bytes apps/web/public/icons/android-icon-48x48.png | Bin 0 -> 802 bytes apps/web/public/icons/android-icon-72x72.png | Bin 0 -> 826 bytes apps/web/public/icons/android-icon-96x96.png | Bin 0 -> 906 bytes apps/web/public/icons/apple-icon-114x114.png | Bin 0 -> 985 bytes apps/web/public/icons/apple-icon-120x120.png | Bin 0 -> 998 bytes apps/web/public/icons/apple-icon-144x144.png | Bin 0 -> 1076 bytes apps/web/public/icons/apple-icon-152x152.png | Bin 0 -> 1163 bytes apps/web/public/icons/apple-icon-180x180.png | Bin 0 -> 1360 bytes apps/web/public/icons/apple-icon-57x57.png | Bin 0 -> 809 bytes apps/web/public/icons/apple-icon-60x60.png | Bin 0 -> 843 bytes apps/web/public/icons/apple-icon-72x72.png | Bin 0 -> 826 bytes apps/web/public/icons/apple-icon-76x76.png | Bin 0 -> 820 bytes apps/web/public/icons/favicon-16x16.png | Bin 0 -> 670 bytes apps/web/public/icons/favicon-32x32.png | Bin 0 -> 747 bytes apps/web/public/icons/favicon-96x96.png | Bin 0 -> 906 bytes apps/web/public/icons/ms-icon-144x144.png | Bin 0 -> 1076 bytes apps/web/public/icons/ms-icon-150x150.png | Bin 0 -> 1159 bytes apps/web/public/icons/ms-icon-310x310.png | Bin 0 -> 2749 bytes apps/web/public/icons/ms-icon-70x70.png | Bin 0 -> 814 bytes apps/web/public/manifest.json | 44 +++++++++++++++++ apps/web/src/app/favicon.ico | Bin 4286 -> 0 bytes apps/web/src/app/layout.tsx | 36 +------------- apps/web/src/app/metadata.ts | 64 +++++++++++++++++++++++++ 28 files changed, 120 insertions(+), 35 deletions(-) create mode 100644 apps/web/public/browserconfig.xml create mode 100644 apps/web/public/favicon.ico create mode 100644 apps/web/public/icons/android-icon-144x144.png create mode 100644 apps/web/public/icons/android-icon-192x192.png create mode 100644 apps/web/public/icons/android-icon-36x36.png create mode 100644 apps/web/public/icons/android-icon-48x48.png create mode 100644 apps/web/public/icons/android-icon-72x72.png create mode 100644 apps/web/public/icons/android-icon-96x96.png create mode 100644 apps/web/public/icons/apple-icon-114x114.png create mode 100644 apps/web/public/icons/apple-icon-120x120.png create mode 100644 apps/web/public/icons/apple-icon-144x144.png create mode 100644 apps/web/public/icons/apple-icon-152x152.png create mode 100644 apps/web/public/icons/apple-icon-180x180.png create mode 100644 apps/web/public/icons/apple-icon-57x57.png create mode 100644 apps/web/public/icons/apple-icon-60x60.png create mode 100644 apps/web/public/icons/apple-icon-72x72.png create mode 100644 apps/web/public/icons/apple-icon-76x76.png create mode 100644 apps/web/public/icons/favicon-16x16.png create mode 100644 apps/web/public/icons/favicon-32x32.png create mode 100644 apps/web/public/icons/favicon-96x96.png create mode 100644 apps/web/public/icons/ms-icon-144x144.png create mode 100644 apps/web/public/icons/ms-icon-150x150.png create mode 100644 apps/web/public/icons/ms-icon-310x310.png create mode 100644 apps/web/public/icons/ms-icon-70x70.png create mode 100644 apps/web/public/manifest.json delete mode 100644 apps/web/src/app/favicon.ico create mode 100644 apps/web/src/app/metadata.ts (limited to 'apps/web') diff --git a/apps/web/public/browserconfig.xml b/apps/web/public/browserconfig.xml new file mode 100644 index 00000000..39060b21 --- /dev/null +++ b/apps/web/public/browserconfig.xml @@ -0,0 +1,11 @@ + + + + + + + + #ffffff + + + \ No newline at end of file diff --git a/apps/web/public/favicon.ico b/apps/web/public/favicon.ico new file mode 100644 index 00000000..9b2cba8f Binary files /dev/null and b/apps/web/public/favicon.ico differ diff --git a/apps/web/public/icons/android-icon-144x144.png b/apps/web/public/icons/android-icon-144x144.png new file mode 100644 index 00000000..7320ece7 Binary files /dev/null and b/apps/web/public/icons/android-icon-144x144.png differ diff --git a/apps/web/public/icons/android-icon-192x192.png b/apps/web/public/icons/android-icon-192x192.png new file mode 100644 index 00000000..f534f429 Binary files /dev/null and b/apps/web/public/icons/android-icon-192x192.png differ diff --git a/apps/web/public/icons/android-icon-36x36.png b/apps/web/public/icons/android-icon-36x36.png new file mode 100644 index 00000000..6b8db020 Binary files /dev/null and b/apps/web/public/icons/android-icon-36x36.png differ diff --git a/apps/web/public/icons/android-icon-48x48.png b/apps/web/public/icons/android-icon-48x48.png new file mode 100644 index 00000000..30a68fa5 Binary files /dev/null and b/apps/web/public/icons/android-icon-48x48.png differ diff --git a/apps/web/public/icons/android-icon-72x72.png b/apps/web/public/icons/android-icon-72x72.png new file mode 100644 index 00000000..e4019c84 Binary files /dev/null and b/apps/web/public/icons/android-icon-72x72.png differ diff --git a/apps/web/public/icons/android-icon-96x96.png b/apps/web/public/icons/android-icon-96x96.png new file mode 100644 index 00000000..85591ab4 Binary files /dev/null and b/apps/web/public/icons/android-icon-96x96.png differ diff --git a/apps/web/public/icons/apple-icon-114x114.png b/apps/web/public/icons/apple-icon-114x114.png new file mode 100644 index 00000000..c776e3f9 Binary files /dev/null and b/apps/web/public/icons/apple-icon-114x114.png differ diff --git a/apps/web/public/icons/apple-icon-120x120.png b/apps/web/public/icons/apple-icon-120x120.png new file mode 100644 index 00000000..76604df8 Binary files /dev/null and b/apps/web/public/icons/apple-icon-120x120.png differ diff --git a/apps/web/public/icons/apple-icon-144x144.png b/apps/web/public/icons/apple-icon-144x144.png new file mode 100644 index 00000000..7320ece7 Binary files /dev/null and b/apps/web/public/icons/apple-icon-144x144.png differ diff --git a/apps/web/public/icons/apple-icon-152x152.png b/apps/web/public/icons/apple-icon-152x152.png new file mode 100644 index 00000000..eb5ef0df Binary files /dev/null and b/apps/web/public/icons/apple-icon-152x152.png differ diff --git a/apps/web/public/icons/apple-icon-180x180.png b/apps/web/public/icons/apple-icon-180x180.png new file mode 100644 index 00000000..b90e62fb Binary files /dev/null and b/apps/web/public/icons/apple-icon-180x180.png differ diff --git a/apps/web/public/icons/apple-icon-57x57.png b/apps/web/public/icons/apple-icon-57x57.png new file mode 100644 index 00000000..7cfb2e56 Binary files /dev/null and b/apps/web/public/icons/apple-icon-57x57.png differ diff --git a/apps/web/public/icons/apple-icon-60x60.png b/apps/web/public/icons/apple-icon-60x60.png new file mode 100644 index 00000000..1d90a370 Binary files /dev/null and b/apps/web/public/icons/apple-icon-60x60.png differ diff --git a/apps/web/public/icons/apple-icon-72x72.png b/apps/web/public/icons/apple-icon-72x72.png new file mode 100644 index 00000000..e4019c84 Binary files /dev/null and b/apps/web/public/icons/apple-icon-72x72.png differ diff --git a/apps/web/public/icons/apple-icon-76x76.png b/apps/web/public/icons/apple-icon-76x76.png new file mode 100644 index 00000000..34575f42 Binary files /dev/null and b/apps/web/public/icons/apple-icon-76x76.png differ diff --git a/apps/web/public/icons/favicon-16x16.png b/apps/web/public/icons/favicon-16x16.png new file mode 100644 index 00000000..96db3a2f Binary files /dev/null and b/apps/web/public/icons/favicon-16x16.png differ diff --git a/apps/web/public/icons/favicon-32x32.png b/apps/web/public/icons/favicon-32x32.png new file mode 100644 index 00000000..f8f589dc Binary files /dev/null and b/apps/web/public/icons/favicon-32x32.png differ diff --git a/apps/web/public/icons/favicon-96x96.png b/apps/web/public/icons/favicon-96x96.png new file mode 100644 index 00000000..85591ab4 Binary files /dev/null and b/apps/web/public/icons/favicon-96x96.png differ diff --git a/apps/web/public/icons/ms-icon-144x144.png b/apps/web/public/icons/ms-icon-144x144.png new file mode 100644 index 00000000..7320ece7 Binary files /dev/null and b/apps/web/public/icons/ms-icon-144x144.png differ diff --git a/apps/web/public/icons/ms-icon-150x150.png b/apps/web/public/icons/ms-icon-150x150.png new file mode 100644 index 00000000..248ef48a Binary files /dev/null and b/apps/web/public/icons/ms-icon-150x150.png differ diff --git a/apps/web/public/icons/ms-icon-310x310.png b/apps/web/public/icons/ms-icon-310x310.png new file mode 100644 index 00000000..950a3d6b Binary files /dev/null and b/apps/web/public/icons/ms-icon-310x310.png differ diff --git a/apps/web/public/icons/ms-icon-70x70.png b/apps/web/public/icons/ms-icon-70x70.png new file mode 100644 index 00000000..7b9c2694 Binary files /dev/null and b/apps/web/public/icons/ms-icon-70x70.png differ diff --git a/apps/web/public/manifest.json b/apps/web/public/manifest.json new file mode 100644 index 00000000..fcbfad59 --- /dev/null +++ b/apps/web/public/manifest.json @@ -0,0 +1,44 @@ +{ + "name": "OpenCut", + "description": "A simple but powerful video editor that gets the job done. In your browser.", + "display": "standalone", + "start_url": "/", + "icons": [ + { + "src": "/icons/android-icon-36x36.png", + "sizes": "36x36", + "type": "image\/png", + "density": "0.75" + }, + { + "src": "/icons/android-icon-48x48.png", + "sizes": "48x48", + "type": "image\/png", + "density": "1.0" + }, + { + "src": "/icons/android-icon-72x72.png", + "sizes": "72x72", + "type": "image\/png", + "density": "1.5" + }, + { + "src": "/icons/android-icon-96x96.png", + "sizes": "96x96", + "type": "image\/png", + "density": "2.0" + }, + { + "src": "/icons/android-icon-144x144.png", + "sizes": "144x144", + "type": "image\/png", + "density": "3.0" + }, + { + "src": "/icons/android-icon-192x192.png", + "sizes": "192x192", + "type": "image\/png", + "density": "4.0" + } + ] +} \ No newline at end of file diff --git a/apps/web/src/app/favicon.ico b/apps/web/src/app/favicon.ico deleted file mode 100644 index cb20127b..00000000 Binary files a/apps/web/src/app/favicon.ico and /dev/null differ diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx index 5d33100d..c76dc451 100644 --- a/apps/web/src/app/layout.tsx +++ b/apps/web/src/app/layout.tsx @@ -1,4 +1,3 @@ -import type { Metadata } from "next"; import { Inter } from "next/font/google"; import { ThemeProvider } from "next-themes"; import { Analytics } from "@vercel/analytics/react"; @@ -12,40 +11,7 @@ const inter = Inter({ variable: "--font-inter", }); -export const metadata: Metadata = { - title: "OpenCut", - description: - "A simple but powerful video editor that gets the job done. In your browser.", - openGraph: { - title: "OpenCut", - description: - "A simple but powerful video editor that gets the job done. In your browser.", - url: "https://opencut.app", - siteName: "OpenCut", - locale: "en_US", - type: "website", - images: [ - { - url: "https://opencut.app/opengraph-image.jpg", - width: 1200, - height: 630, - alt: "OpenCut", - }, - ], - }, - twitter: { - card: "summary_large_image", - title: "OpenCut", - description: - "A simple but powerful video editor that gets the job done. In your browser.", - creator: "@opencutapp", - images: ["/opengraph-image.jpg"], - }, - robots: { - index: true, - follow: true, - }, -}; +export { metadata } from './metadata' export default function RootLayout({ children, diff --git a/apps/web/src/app/metadata.ts b/apps/web/src/app/metadata.ts new file mode 100644 index 00000000..4db2e8de --- /dev/null +++ b/apps/web/src/app/metadata.ts @@ -0,0 +1,64 @@ +import { Metadata } from "next"; + +export const metadata: Metadata = { + title: "OpenCut", + description: + "A simple but powerful video editor that gets the job done. In your browser.", + openGraph: { + title: "OpenCut", + description: + "A simple but powerful video editor that gets the job done. In your browser.", + url: "https://opencut.app", + siteName: "OpenCut", + locale: "en_US", + type: "website", + images: [ + { + url: "https://opencut.app/opengraph-image.jpg", + width: 1200, + height: 630, + alt: "OpenCut", + }, + ], + }, + twitter: { + card: "summary_large_image", + title: "OpenCut", + description: + "A simple but powerful video editor that gets the job done. In your browser.", + creator: "@opencutapp", + images: ["/opengraph-image.jpg"], + }, + robots: { + index: true, + follow: true, + }, + icons: { + icon: [ + { url: "/favicon.ico" }, + { url: "/icons/favicon-16x16.png", sizes: "16x16", type: "image/png" }, + { url: "/icons/favicon-32x32.png", sizes: "32x32", type: "image/png" }, + { url: "/icons/favicon-96x96.png", sizes: "96x96", type: "image/png" }, + ], + apple: [ + { url: "/icons/apple-icon-57x57.png", sizes: "57x57", type: "image/png" }, + { url: "/icons/apple-icon-60x60.png", sizes: "60x60", type: "image/png" }, + { url: "/icons/apple-icon-72x72.png", sizes: "72x72", type: "image/png" }, + { url: "/icons/apple-icon-76x76.png", sizes: "76x76", type: "image/png" }, + { url: "/icons/apple-icon-114x114.png", sizes: "114x114", type: "image/png" }, + { url: "/icons/apple-icon-120x120.png", sizes: "120x120", type: "image/png" }, + { url: "/icons/apple-icon-144x144.png", sizes: "144x144", type: "image/png" }, + { url: "/icons/apple-icon-152x152.png", sizes: "152x152", type: "image/png" }, + { url: "/icons/apple-icon-180x180.png", sizes: "180x180", type: "image/png" }, + ], + shortcut: ["/favicon.ico"] + }, + appleWebApp: { + capable: true, + title: "OpenCut", + }, + manifest: "/manifest.json", + other: { + "msapplication-config": "/browserconfig.xml" + } +}; \ No newline at end of file -- cgit v1.3.1 From 2e5b623d90ba250dd5c50b623bd8044fd6d62e2a Mon Sep 17 00:00:00 2001 From: muhammed sinan Date: Wed, 25 Jun 2025 20:14:55 +0530 Subject: metadata declared in layout file --- apps/web/src/app/layout.tsx | 3 ++- apps/web/src/app/metadata.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) (limited to 'apps/web') diff --git a/apps/web/src/app/layout.tsx b/apps/web/src/app/layout.tsx index c76dc451..ee045647 100644 --- a/apps/web/src/app/layout.tsx +++ b/apps/web/src/app/layout.tsx @@ -5,13 +5,14 @@ import Script from "next/script"; import "./globals.css"; import { Toaster } from "../components/ui/sonner"; import { TooltipProvider } from "../components/ui/tooltip"; +import { baseMetaData } from "./metadata"; const inter = Inter({ subsets: ["latin"], variable: "--font-inter", }); -export { metadata } from './metadata' +export const metadata = baseMetaData; export default function RootLayout({ children, diff --git a/apps/web/src/app/metadata.ts b/apps/web/src/app/metadata.ts index 4db2e8de..fe674381 100644 --- a/apps/web/src/app/metadata.ts +++ b/apps/web/src/app/metadata.ts @@ -1,6 +1,6 @@ import { Metadata } from "next"; -export const metadata: Metadata = { +export const baseMetaData: Metadata = { title: "OpenCut", description: "A simple but powerful video editor that gets the job done. In your browser.", -- cgit v1.3.1 From cca25a61039b1d09c9ffaee2f42046c09ab72c3b Mon Sep 17 00:00:00 2001 From: muhammed sinan Date: Wed, 25 Jun 2025 20:22:17 +0530 Subject: Reduce code duplication by extracting common metadata values. --- apps/web/src/app/metadata.ts | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'apps/web') diff --git a/apps/web/src/app/metadata.ts b/apps/web/src/app/metadata.ts index fe674381..4e387014 100644 --- a/apps/web/src/app/metadata.ts +++ b/apps/web/src/app/metadata.ts @@ -1,20 +1,23 @@ import { Metadata } from "next"; +const title = "OpenCut"; +const description = "A simple but powerful video editor that gets the job done. In your browser."; +const openGraphImageUrl = "https://opencut.app/opengraph-image.jpg"; +const twitterImageUrl = "/opengraph-image.jpg"; + export const baseMetaData: Metadata = { - title: "OpenCut", - description: - "A simple but powerful video editor that gets the job done. In your browser.", + title: title, + description: description, openGraph: { - title: "OpenCut", - description: - "A simple but powerful video editor that gets the job done. In your browser.", + title: title, + description: description, url: "https://opencut.app", siteName: "OpenCut", locale: "en_US", type: "website", images: [ { - url: "https://opencut.app/opengraph-image.jpg", + url: openGraphImageUrl, width: 1200, height: 630, alt: "OpenCut", @@ -23,11 +26,10 @@ export const baseMetaData: Metadata = { }, twitter: { card: "summary_large_image", - title: "OpenCut", - description: - "A simple but powerful video editor that gets the job done. In your browser.", + title: title, + description: description, creator: "@opencutapp", - images: ["/opengraph-image.jpg"], + images: [twitterImageUrl], }, robots: { index: true, @@ -55,10 +57,10 @@ export const baseMetaData: Metadata = { }, appleWebApp: { capable: true, - title: "OpenCut", + title: title, }, manifest: "/manifest.json", other: { "msapplication-config": "/browserconfig.xml" } -}; \ No newline at end of file +}; -- cgit v1.3.1