diff --git a/app/forge/page.tsx b/app/forge/page.tsx new file mode 100644 index 0000000..0b26d93 --- /dev/null +++ b/app/forge/page.tsx @@ -0,0 +1,79 @@ +"use client"; +import { Hammer, History, Target, Code2 } from "lucide-react"; +import PageLayout from "@/components/PageLayout"; + +export default function ForgePage() { + return ( + +
+
+ +

+ TheForge +

+
+

+
+ The Forge is where I document my current engineering focus. This space + reflects active builds, experimental prototypes and gives a taste of + my next releases. +

+
+ + {/* Main Project Card */} +
+
+
+

+ Project: PixelPals +

+
+ + Build Phase: Alpha 0.1 + + + Engine: Godot / GDScript + +
+
+
+ + Active Focus + +
+
+ +

+ Exploring procedural generation and state-machine-driven AI behaviors. + The goal is to bridge my experience in systems architecture with + real-time game loops and interactive storytelling. +

+ + {/* Milestones / Changelog */} +
+

+ Development_Log +

+
    +
  • + + 2026-02-02 + +

    + Implemented dynamic weather patterns using custom shaders. +

    +
  • +
  • + + 2026-01-28 + +

    + Optimized asset loading pipeline for faster initial scene entry. +

    +
  • +
+
+
+
+ ); +} diff --git a/app/infrastructure/page.tsx b/app/infrastructure/page.tsx index 9bbead9..c063216 100644 --- a/app/infrastructure/page.tsx +++ b/app/infrastructure/page.tsx @@ -127,7 +127,7 @@ export default function InfrastructurePage() { whileTap={{ scale: 0.98 }} className="px-8 py-4 rounded-xl bg-white text-black font-bold text-[11px] uppercase tracking-[0.2em] flex items-center gap-3 transition-all duration-300" > - Examine Logic + View case diff --git a/app/lab/page.tsx b/app/lab/page.tsx index 531f6e3..88bef09 100644 --- a/app/lab/page.tsx +++ b/app/lab/page.tsx @@ -1,6 +1,6 @@ "use client"; import { LAB_SERVICES } from "@/data/lab"; -import { ExternalLink, Lock, Box, Terminal, Globe } from "lucide-react"; +import { Lock, Box, Globe } from "lucide-react"; import { motion } from "framer-motion"; import Image from "next/image"; import PageLayout from "@/components/PageLayout"; @@ -12,12 +12,12 @@ export default function LabPage() {

- System_Lab + System Lab

- A registry of operational services and experimental R&D. Services - labeled + A registry of self hosted operational services and experimental R&D. + Services labeled [VPN] are secured via Tailscale to maintain a hardened perimeter for sensitive telemetry.

diff --git a/app/page.tsx b/app/page.tsx index d326cff..711a922 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -2,7 +2,7 @@ import Link from "next/link"; import { motion, Variants } from "framer-motion"; -import { Globe, Smartphone, Server, Gamepad2 } from "lucide-react"; +import { Globe, Smartphone, Server, Gamepad2, Hammer } from "lucide-react"; import { useState } from "react"; import MonitorCard from "@/components/MonitorCard"; import PageLayout from "@/components/PageLayout"; @@ -170,20 +170,28 @@ export default function Home() { /> {/* Bottom Row: The Forge */} - -
- -
-
-

The Forge

-

- Indie Game Dev & Creative Prototypes -

-
-
+ + +
+ +
+
+
+

+ The Forge +

+ +
+

+ A space where I demonstrate what I am currently working on and + any future projects. +

+
+
+ diff --git a/data/forge.ts b/data/forge.ts new file mode 100644 index 0000000..b9ecc09 --- /dev/null +++ b/data/forge.ts @@ -0,0 +1,26 @@ +import { ForgeProject } from "@/types"; + +export const ACTIVE_BUILD: ForgeProject = { + id: "pixelpals", + name: "PixelPals", + status: "Alpha", + engine: "Godot 4.x", + description: + "A mobile-first creature collection game focusing on procedural behaviors and lightweight state-management.", + highlights: [ + "State-machine AI", + "Custom Shader Pipelines", + "Mobile-optimized Loops", + ], + externalLink: "/projects/pixelpals", // Link to your internal portfolio or a dedicated site + changelog: [ + { + date: "2026-02-03", + update: "Refined touch-input latency for mobile devices.", + }, + { + date: "2026-01-25", + update: "Integrated local SQLite database for creature persistence.", + }, + ], +}; diff --git a/data/lab.ts b/data/lab.ts index 733e105..4dd9297 100644 --- a/data/lab.ts +++ b/data/lab.ts @@ -9,7 +9,7 @@ export const LAB_SERVICES: LabService[] = [ stack: ["Next.js", "Node", "SQLite"], visibility: "public", url: "https://observatory.georgew.dev", - gitUrl: "https://git.georgew.dev/george/observatory", + gitUrl: "https://git.georgew.dev/georgew/mission-control", image: "/lab/observatory.jpg", uptimeId: 12, }, @@ -22,6 +22,7 @@ export const LAB_SERVICES: LabService[] = [ visibility: "public", url: "https://surf.georgew.dev/d/adrx6b4/llangennith-beach-surf-data?orgId=1&from=now-24h&to=now&timezone=browser&refresh=1h&theme=dark&kiosk=true", image: "/lab/surf-hub.jpg", + gitUrl: "https://git.georgew.dev/georgew/surf-hub", uptimeId: 13, }, { @@ -31,8 +32,8 @@ export const LAB_SERVICES: LabService[] = [ "Dedicated audiobook server for the household. Primarily used for our Brandon Sanderson, Patrick Rothfuss, and Dungeon Crawler Carl marathons.", stack: ["Docker", "Compose", "Tailscale", "rclone"], visibility: "tailscale", - url: "https://audio.georgew.dev", image: "/lab/audiobookshelf.jpg", + gitUrl: "https://git.georgew.dev/georgew/audiobookshelf", uptimeId: 6, }, { @@ -42,8 +43,8 @@ export const LAB_SERVICES: LabService[] = [ "A specialized tracker for our anime watch-lists! Features custom metadata hooks to keep our seasonal progress in sync.", stack: ["Docker", "Redis", "Tailscale"], visibility: "tailscale", - url: "https://anime.georgew.dev", image: "/lab/yamtrack.jpg", + gitUrl: "https://git.georgew.dev/georgew/yamtrack", uptimeId: 11, }, { @@ -53,8 +54,9 @@ export const LAB_SERVICES: LabService[] = [ "Personal document management system with OCR and automated tagging. Digitizing our physical mail and records into a searchable, versioned archive.", stack: ["Docker", "Redis", "PostgreSQL"], visibility: "tailscale", - url: "https://paperless.georgew.dev", image: "/lab/paperless.jpg", + gitUrl: "https://git.georgew.dev/georgew/paperless-ngx", + uptimeId: 14, }, { @@ -64,8 +66,8 @@ export const LAB_SERVICES: LabService[] = [ "Automated monitoring for the essentials: NASA news updates, hobby stock alerts, and Telegram pings the second a new episode of 'The Traitors' drops.", stack: ["Telegram API", "Webhooks"], visibility: "tailscale", - url: "https://alerts.georgew.dev", image: "/lab/change-detection.jpg", + gitUrl: "https://git.georgew.dev/georgew/change-detection", uptimeId: 15, }, { @@ -75,7 +77,6 @@ export const LAB_SERVICES: LabService[] = [ "The 'Engine Room.' Utilizing Portainer for orchestration, Dozzle for log streaming, and Watchtower for automated container lifecycle management across the Hetzner node.", stack: ["Portainer", "Dozzle", "Watchtower"], visibility: "tailscale", - url: "https://portainer.georgew.dev", image: "/lab/portainer.jpg", }, { @@ -85,7 +86,6 @@ export const LAB_SERVICES: LabService[] = [ "The 'Source of Truth' for the home infrastructure. Contains deployment guides, network maps, and disaster recovery procedures for the entire node.", stack: ["Wiki.js", "Markdown"], visibility: "tailscale", - url: "https://wiki.georgew.dev", image: "/lab/wikijs.jpg", uptimeId: 5, }, @@ -93,11 +93,9 @@ export const LAB_SERVICES: LabService[] = [ id: "dashboard", name: "System Dashboard", description: - "The central entry point for the GeorgeW ecosystem. A high-level overview providing unified access to all public and VPN-secured services.", - stack: ["Next.js", "Docker", "Reverse Proxy"], - visibility: "public", - url: "https://dash.georgew.dev", - gitUrl: "https://git.georgew.dev/george/homepage", + "The central entry point for the GeorgeW ecosystem, used as my personal home page. A high-level overview providing unified access to all public and VPN-secured services.", + stack: ["Homepage", "Docker", "Reverse Proxy"], + visibility: "tailscale", image: "/lab/dashboard.jpg", }, ]; diff --git a/public/lab/dashboard.jpg b/public/lab/dashboard.jpg new file mode 100644 index 0000000..5ceea70 Binary files /dev/null and b/public/lab/dashboard.jpg differ diff --git a/types/index.ts b/types/index.ts index effeca5..93c1690 100644 --- a/types/index.ts +++ b/types/index.ts @@ -47,3 +47,14 @@ export interface LabService { image: string; uptimeId?: number; } + +export interface ForgeProject { + id: string; + name: string; + status: "Alpha" | "Beta" | "R&D"; + engine: string; + description: string; + highlights: string[]; + externalLink?: string; + changelog: { date: string; update: string }[]; +}