feat: no more vercel, next. now vite and nix
This commit is contained in:
parent
fc80ead81e
commit
bf5900edbb
28 changed files with 4099 additions and 1554 deletions
|
|
@ -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 |
|
|
@ -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>
|
||||
);
|
||||
}
|
||||
|
|
@ -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"
|
||||
}
|
||||
|
||||
|
|
@ -1,5 +1,3 @@
|
|||
"use client";
|
||||
|
||||
import { useEffect, useRef, useCallback } from "react";
|
||||
|
||||
export function CgolCanvas() {
|
||||
7
src/global.d.ts
vendored
7
src/global.d.ts
vendored
|
|
@ -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
10
src/main.tsx
Normal 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>,
|
||||
);
|
||||
Loading…
Add table
Add a link
Reference in a new issue