feat: no more vercel, next. now vite and nix

This commit is contained in:
Jet Pham 2026-03-04 22:00:53 -08:00
parent fc80ead81e
commit bf5900edbb
No known key found for this signature in database
28 changed files with 4099 additions and 1554 deletions

View file

@ -1,17 +1,10 @@
import Link from "next/link";
import Image from "next/image";
import { BorderedBox } from "./_components/bordered-box";
import { FrostedBox } from "./_components/frosted-box";
import Header from "./_components/header";
import { CgolCanvas } from "./_components/cgol-canvas";
import FirstName from "~/assets/Jet.txt";
import { BorderedBox } from "~/components/bordered-box";
import { FrostedBox } from "~/components/frosted-box";
import Header from "~/components/header";
import { CgolCanvas } from "~/components/cgol-canvas";
import Jet from "~/assets/Jet.txt?raw";
export const metadata = {
title: "Jet Pham - Software Extremist",
description: "Personal website of Jet Pham, a software extremist.",
};
export default async function Home() {
export default function App() {
return (
<>
<CgolCanvas />
@ -20,58 +13,57 @@ export default async function Home() {
<FrostedBox className="my-[2ch] w-full max-w-[66.666667%] min-w-fit md:mt-[4ch]">
<div className="flex flex-col items-center justify-center gap-[2ch] md:flex-row">
<div className="order-1 flex flex-col items-center md:order-2">
<Header content={FirstName} />
<Header content={Jet} />
<div className="mt-[2ch]">Software Extremist</div>
</div>
<div className="order-2 shrink-0 md:order-1">
<Image
<img
src="/jet.svg"
alt="Jet"
width={250}
height={250}
className="aspect-square w-full max-w-[250px] object-cover md:h-[263px] md:w-[175px] md:max-w-none"
priority
/>
</div>
</div>
<BorderedBox label="Contact" className="mt-[2ch]">
<Link href="mailto:jet@extremist.software">
<a href="mailto:jet@extremist.software">
jet@extremist.software
</Link>
</a>
</BorderedBox>
<BorderedBox label="Links">
<ol>
<li>
<Link
<a
href="https://git.extremist.software"
className="inline-flex items-center"
>
Forgejo
</Link>
</a>
</li>
<li>
<Link
<a
href="https://github.com/jetpham"
className="inline-flex items-center"
>
GitHub
</Link>
</a>
</li>
<li>
<Link
<a
href="https://x.com/jetpham5"
className="inline-flex items-center"
>
X
</Link>
</a>
</li>
<li>
<Link
<a
href="https://bsky.app/profile/jetpham.com"
className="inline-flex items-center"
>
Bluesky
</Link>
</a>
</li>
</ol>
</BorderedBox>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 979 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

View file

@ -1,29 +0,0 @@
import "~/styles/globals.css";
import { type Metadata, type Viewport } from "next";
export const metadata: Metadata = {
title: "Jet Pham",
description: "Jet Pham's personal website",
appleWebApp: {
title: "Jet Pham",
},
};
export const viewport: Viewport = {
width: "device-width",
initialScale: 1,
themeColor: "#000000",
};
export default function RootLayout({
children,
}: Readonly<{ children: React.ReactNode }>) {
return (
<html lang="en">
<body>
{children}
</body>
</html>
);
}

View file

@ -1,22 +0,0 @@
{
"name": "Jet Pham",
"short_name": "Jet Pham",
"icons": [
{
"src": "/web-app-manifest-192x192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/web-app-manifest-512x512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
],
"theme_color": "#a80055",
"background_color": "#a80055",
"display": "standalone"
}

View file

@ -1,5 +1,3 @@
"use client";
import { useEffect, useRef, useCallback } from "react";
export function CgolCanvas() {

7
src/global.d.ts vendored
View file

@ -1,10 +1,11 @@
declare module "*.txt" {
/// <reference types="vite/client" />
declare module "*.txt?raw" {
const content: string;
export default content;
}
declare module "*.utf8ans" {
declare module "*.utf8ans?raw" {
const content: string;
export default content;
}

10
src/main.tsx Normal file
View file

@ -0,0 +1,10 @@
import { StrictMode } from "react";
import { createRoot } from "react-dom/client";
import "~/styles/globals.css";
import App from "./App";
createRoot(document.getElementById("root")!).render(
<StrictMode>
<App />
</StrictMode>,
);