diff --git a/.nvmrc b/.nvmrc deleted file mode 100644 index 32f8c50d..00000000 --- a/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -24.13.1 diff --git a/app/(home)/icons/domainstack.png b/app/(home)/icons/domainstack.png new file mode 100644 index 00000000..f911f6de Binary files /dev/null and b/app/(home)/icons/domainstack.png differ diff --git a/app/(home)/icons/snoozle.png b/app/(home)/icons/snoozle.png new file mode 100644 index 00000000..0529dc19 Binary files /dev/null and b/app/(home)/icons/snoozle.png differ diff --git a/app/(home)/icons/sofa.png b/app/(home)/icons/sofa.png new file mode 100644 index 00000000..d800c071 Binary files /dev/null and b/app/(home)/icons/sofa.png differ diff --git a/app/(home)/icons/versioneer.png b/app/(home)/icons/versioneer.png new file mode 100644 index 00000000..c853a5b1 Binary files /dev/null and b/app/(home)/icons/versioneer.png differ diff --git a/app/(home)/page.tsx b/app/(home)/page.tsx new file mode 100644 index 00000000..c368ac16 --- /dev/null +++ b/app/(home)/page.tsx @@ -0,0 +1,104 @@ +import { ArrowUpRight } from "lucide-react"; +import Image, { type StaticImageData } from "next/image"; +import Link from "next/link"; + +import domainstackIcon from "./icons/domainstack.png"; +import snoozleIcon from "./icons/snoozle.png"; +import sofaIcon from "./icons/sofa.png"; +import versioneerIcon from "./icons/versioneer.png"; + +type Project = { + name: string; + url: string; + tagline: string; + icon: StaticImageData; +}; + +const projects: readonly Project[] = [ + { + name: "Domainstack", + url: "https://domainstack.io", + tagline: "Domain intelligence made easy", + icon: domainstackIcon, + }, + { + name: "Sofa", + url: "https://sofa.watch", + tagline: "Self-hosted movie & TV show tracker", + icon: sofaIcon, + }, + { + name: "Versioneer", + url: "https://versioneer.app", + tagline: "macOS app updater with privacy-friendly crowdsourcing", + icon: versioneerIcon, + }, + { + name: "Snoozle", + url: "https://snoozle.ai", + tagline: "AI-powered bedtime stories for kids", + icon: snoozleIcon, + }, +] as const; + +const Page = () => ( + <> +

+ Hi there! I’m Jake.{" "} + + 👋 + +

+ +
+

+ I’m a developer based in the{" "} + + Boston + {" "} + area working on some cool stuff: +

+
+ +
+ +
+ +); + +export default Page; diff --git a/app/birthday/opengraph-image.png b/app/birthday/opengraph-image.png deleted file mode 100644 index da85b0f0..00000000 Binary files a/app/birthday/opengraph-image.png and /dev/null differ diff --git a/app/birthday/page.tsx b/app/birthday/page.tsx deleted file mode 100644 index e6414944..00000000 --- a/app/birthday/page.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { JsonLd } from "react-schemaorg"; -import type { VideoObject } from "schema-dts"; - -import { PageTitle } from "@/components/layout/page-title"; -import { Video } from "@/components/video"; -import { createMetadata } from "@/lib/metadata"; - -import thumbnail from "./thumbnail.png"; - -export const metadata = createMetadata({ - title: "🎉 Cranky Birthday Boy on VHS Tape 📼", - description: "The origin of my hatred for the Happy Birthday song.", - canonical: "/birthday", - openGraph: { - videos: [ - { - url: "https://ijyxfbpcm3itvdly.public.blob.vercel-storage.com/birthday-pavk1LBK4H6xF8ZWeR0oTcaabGuQ8T.webm", - type: "video/webm", - }, - ], - }, -}); - -const Page = () => ( - <> - - item={{ - "@context": "https://schema.org", - "@type": "VideoObject", - name: metadata.title as string, - description: metadata.description as string, - contentUrl: - "https://ijyxfbpcm3itvdly.public.blob.vercel-storage.com/birthday-pavk1LBK4H6xF8ZWeR0oTcaabGuQ8T.webm", - thumbnailUrl: `${process.env.NEXT_PUBLIC_BASE_URL}${thumbnail.src}`, - embedUrl: `${process.env.NEXT_PUBLIC_BASE_URL}/birthday`, - uploadDate: "1996-02-06T00:00:00Z", - duration: "PT6M10S", - }} - /> - - 1996.mov - -