Compare commits
No commits in common. "main" and "v1.1.0" have entirely different histories.
|
|
@ -19,24 +19,25 @@ export default function CVPage() {
|
||||||
{/* Main Container*/}
|
{/* Main Container*/}
|
||||||
<div className="bg-white text-slate-900 p-8 md:p-16 rounded-sm shadow-2xl print:shadow-none print:p-12 print:m-0 font-sans print:text-[12pt] leading-normal">
|
<div className="bg-white text-slate-900 p-8 md:p-16 rounded-sm shadow-2xl print:shadow-none print:p-12 print:m-0 font-sans print:text-[12pt] leading-normal">
|
||||||
<header className="border-b-4 border-slate-900 pb-8 print:pb-4 mb-8 print:mb-6 flex flex-col md:flex-row print:grid print:grid-cols-[1.5fr_1fr] justify-between items-start gap-6">
|
<header className="border-b-4 border-slate-900 pb-8 print:pb-4 mb-8 print:mb-6 flex flex-col md:flex-row print:grid print:grid-cols-[1.5fr_1fr] justify-between items-start gap-6">
|
||||||
<div className="flex flex-wrap items-center gap-4 sm:gap-6 mb-4 print:mb-2 print:flex-nowrap">
|
<div className="flex print:flex print:items-center">
|
||||||
<div className="shrink-0">
|
<div className="mr-3 shrink-0">
|
||||||
<img
|
<img
|
||||||
src="/profile.jpg"
|
src="/profile.jpg"
|
||||||
alt="George A. Webberley"
|
alt="George A. Webberley"
|
||||||
className="w-20 h-20 md:w-24 md:h-24 print:w-16 print:h-16 rounded-full object-cover border-2 border-slate-100 shadow-sm"
|
className="w-25 h-25 print:w-16 print:h-16 rounded-full object-cover border-2 border-slate-100 shadow-sm"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div className="min-w-0 flex-1">
|
<div className="min-w-0">
|
||||||
<h1 className="text-3xl md:text-5xl print:text-3xl font-extrabold tracking-tighter mb-1 text-slate-900 lg:whitespace-nowrap print:whitespace-nowrap">
|
<h1 className="text-5xl print:text-3xl font-extrabold tracking-tighter mb-2 text-slate-900 whitespace-nowrap">
|
||||||
George A. Webberley
|
George A. Webberley
|
||||||
</h1>
|
</h1>
|
||||||
<p className="text-lg md:text-2xl print:text-[14pt] text-orange-600 font-bold uppercase tracking-tight lg:whitespace-nowrap print:whitespace-nowrap">
|
<p className="text-2xl print:text-[14pt] text-orange-600 font-bold uppercase tracking-tight whitespace-nowrap">
|
||||||
Full Stack Engineer // Systems Architect
|
Full Stack Engineer // Systems Architect
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{/* Contact Info */}
|
|
||||||
|
{/* Contact Info - Explicitly right-aligned for print */}
|
||||||
<div className="space-y-1 text-sm print:text-[9px] text-slate-500 font-mono text-right print:w-full print:flex print:flex-col print:items-end">
|
<div className="space-y-1 text-sm print:text-[9px] text-slate-500 font-mono text-right print:w-full print:flex print:flex-col print:items-end">
|
||||||
<div className="flex items-center md:justify-end gap-2">
|
<div className="flex items-center md:justify-end gap-2">
|
||||||
<MapPin size={14} /> Copenhagen, Denmark
|
<MapPin size={14} /> Copenhagen, Denmark
|
||||||
|
|
@ -362,12 +363,16 @@ export default function CVPage() {
|
||||||
<p className="text-[12px] print:text-[10px] text-slate-700 mb-3 print:mb-1.5 leading-tight">
|
<p className="text-[12px] print:text-[10px] text-slate-700 mb-3 print:mb-1.5 leading-tight">
|
||||||
Detailed architecture diagrams and documentation:
|
Detailed architecture diagrams and documentation:
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
{/* Web Version: Clickable Link */}
|
||||||
<a
|
<a
|
||||||
href="https://georgew.dev"
|
href="https://georgew.dev"
|
||||||
className="text-sm print:hidden font-black flex items-center gap-1 hover:underline text-slate-900"
|
className="text-sm print:hidden font-black flex items-center gap-1 hover:underline text-slate-900"
|
||||||
>
|
>
|
||||||
GEORGEW.DEV <ExternalLink size={14} />
|
GEORGEW.DEV <ExternalLink size={14} />
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
{/* Print Version: Static text that won't be stripped by "a" selectors */}
|
||||||
<div className="hidden print:block text-sm font-black text-slate-900">
|
<div className="hidden print:block text-sm font-black text-slate-900">
|
||||||
GEORGEW.DEV
|
GEORGEW.DEV
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
import { motion, Variants } from "framer-motion";
|
import { motion, Variants } from "framer-motion";
|
||||||
import { Globe, Smartphone, Server, Hammer } from "lucide-react";
|
import { Globe, Smartphone, Server, Gamepad2, Hammer } from "lucide-react";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
import MonitorCard from "@/components/MonitorCard";
|
import MonitorCard from "@/components/MonitorCard";
|
||||||
import PageLayout from "@/components/PageLayout";
|
import PageLayout from "@/components/PageLayout";
|
||||||
|
|
|
||||||
|
|
@ -7,17 +7,17 @@ import Image from "next/image";
|
||||||
|
|
||||||
const MONITORS = [
|
const MONITORS = [
|
||||||
{ id: 2, name: "Datasaur" },
|
{ id: 2, name: "Datasaur" },
|
||||||
{ id: 12, name: "Observatory" },
|
|
||||||
{ id: 16, name: "Fossil tracker" },
|
|
||||||
{ id: 6, name: "Audiobookshelf" },
|
{ id: 6, name: "Audiobookshelf" },
|
||||||
{ id: 7, name: "Woodpecker CI" },
|
{ id: 7, name: "Woodpecker CI" },
|
||||||
{ id: 8, name: "Forgejo Git" },
|
{ id: 8, name: "Forgejo Git" },
|
||||||
{ id: 9, name: "Server dashboard" },
|
{ id: 9, name: "Server dashboard" },
|
||||||
|
{ id: 10, name: "Ratoong" },
|
||||||
{ id: 3, name: "Dozzle" },
|
{ id: 3, name: "Dozzle" },
|
||||||
|
{ id: 12, name: "Observatory" },
|
||||||
{ id: 13, name: "Surf hub" },
|
{ id: 13, name: "Surf hub" },
|
||||||
{ id: 11, name: "Anime list" },
|
{ id: 11, name: "Anime list" },
|
||||||
{ id: 5, name: "Wiki" },
|
{ id: 5, name: "Wiki" },
|
||||||
{ id: 14, name: "Paperless" },
|
{ id: 4, name: "Watchtower" },
|
||||||
];
|
];
|
||||||
|
|
||||||
const ITEMS_PER_PAGE = 6;
|
const ITEMS_PER_PAGE = 6;
|
||||||
|
|
|
||||||
12
data/lab.ts
12
data/lab.ts
|
|
@ -13,18 +13,6 @@ export const LAB_SERVICES: LabService[] = [
|
||||||
image: "/lab/observatory.jpg",
|
image: "/lab/observatory.jpg",
|
||||||
uptimeId: 12,
|
uptimeId: 12,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
id: "dino-tracker",
|
|
||||||
name: "GW Paleo",
|
|
||||||
description:
|
|
||||||
"A digital field journal and taxonomic registry for Dinosauria. Designed with a 'Museum Archive' aesthetic, this specimen tracker syncs with the Paleobiology Database (PBDB) to catalog thousands of validated species and genera.",
|
|
||||||
stack: ["Next.js", "Prisma", "SQLite", "Tailwind CSS"],
|
|
||||||
visibility: "public",
|
|
||||||
url: "https://paleo.georgew.dev",
|
|
||||||
gitUrl: "https://git.georgew.dev/georgew/dino-tracker",
|
|
||||||
image: "/lab/dino-tracker.jpg",
|
|
||||||
uptimeId: 16,
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
id: "surf-hub",
|
id: "surf-hub",
|
||||||
name: "Surf Sentinel",
|
name: "Surf Sentinel",
|
||||||
|
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"names": {
|
|
||||||
"muninn": "44e345442475c960433feb762c9d3f70e4fdb71c2f873a3473358d40e2ae01c1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 174 KiB |
Loading…
Reference in a new issue