Compare commits

...

5 commits
v1.1.0 ... main

Author SHA1 Message Date
GeorgeWebberley 3cec6e7758 Added muninn
All checks were successful
ci/woodpecker/release/woodpecker Pipeline was successful
2026-03-17 18:49:27 +01:00
GeorgeWebberley a1c84ccc58 Updated status uptime choices
All checks were successful
ci/woodpecker/release/woodpecker Pipeline was successful
2026-02-12 20:37:57 +01:00
GeorgeWebberley 75a16af0c4 Updated dinos to paleo
All checks were successful
ci/woodpecker/release/woodpecker Pipeline was successful
2026-02-08 15:57:28 +01:00
GeorgeWebberley deb370d5af Added dino-tracker
All checks were successful
ci/woodpecker/release/woodpecker Pipeline was successful
2026-02-06 11:07:15 +01:00
GeorgeWebberley 8508b679c0 Fixed mobile layout of CV
All checks were successful
ci/woodpecker/release/woodpecker Pipeline was successful
2026-02-04 16:45:06 +01:00
6 changed files with 28 additions and 16 deletions

View file

@ -19,25 +19,24 @@ 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 print:flex print:items-center"> <div className="flex flex-wrap items-center gap-4 sm:gap-6 mb-4 print:mb-2 print:flex-nowrap">
<div className="mr-3 shrink-0"> <div className="shrink-0">
<img <img
src="/profile.jpg" src="/profile.jpg"
alt="George A. Webberley" alt="George A. Webberley"
className="w-25 h-25 print:w-16 print:h-16 rounded-full object-cover border-2 border-slate-100 shadow-sm" 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"
/> />
</div> </div>
<div className="min-w-0"> <div className="min-w-0 flex-1">
<h1 className="text-5xl print:text-3xl font-extrabold tracking-tighter mb-2 text-slate-900 whitespace-nowrap"> <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">
George A. Webberley George A. Webberley
</h1> </h1>
<p className="text-2xl print:text-[14pt] text-orange-600 font-bold uppercase tracking-tight whitespace-nowrap"> <p className="text-lg md:text-2xl print:text-[14pt] text-orange-600 font-bold uppercase tracking-tight lg:whitespace-nowrap print: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
@ -363,16 +362,12 @@ 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>

View file

@ -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, Gamepad2, Hammer } from "lucide-react"; import { Globe, Smartphone, Server, 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";

View file

@ -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: 4, name: "Watchtower" }, { id: 14, name: "Paperless" },
]; ];
const ITEMS_PER_PAGE = 6; const ITEMS_PER_PAGE = 6;

View file

@ -13,6 +13,18 @@ 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",

View file

@ -0,0 +1,5 @@
{
"names": {
"muninn": "44e345442475c960433feb762c9d3f70e4fdb71c2f873a3473358d40e2ae01c1"
}
}

BIN
public/lab/dino-tracker.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB