From 3b9fa373bc6a2876ff480629017d56bbf920eb19 Mon Sep 17 00:00:00 2001 From: Benjamin Toby Date: Mon, 16 Feb 2026 12:50:45 +0100 Subject: [PATCH] Updates --- components/pages/Home/(data)/work.ts | 15 ++++ .../pages/Home/(sections)/AboutSection.tsx | 22 ++++-- .../pages/Home/(sections)/MyWorkSection.tsx | 53 +++++++++----- .../Home/(sections)/footer-cta-section.tsx | 53 ++++++++++++++ components/pages/Home/index.tsx | 46 ++++++++++-- components/pages/about/index.tsx | 71 ++++++++++++++++--- pages/index.tsx | 3 + public/robots.txt | 4 +- 8 files changed, 227 insertions(+), 40 deletions(-) create mode 100644 components/pages/Home/(sections)/footer-cta-section.tsx diff --git a/components/pages/Home/(data)/work.ts b/components/pages/Home/(data)/work.ts index 2b7873c..1a72a1e 100644 --- a/components/pages/Home/(data)/work.ts +++ b/components/pages/Home/(data)/work.ts @@ -7,6 +7,7 @@ export const work = { description: "Clould-based SQL data management system.", href: "https://datasquirel.com", image: "/images/work/devops/server-management.png", + metrics: [""], technologies: [ "Node JS", "SQL", @@ -24,6 +25,11 @@ export const work = { description: "Mortgage Broker in Utah", href: "https://summitlending.com", image: "/images/work/devops/server-management.png", + metrics: [ + "500+ leads/month", + "~10 deploys/week", + "99.99% uptime", + ], technologies: [ "Next JS", "Tailwind CSS", @@ -38,6 +44,7 @@ export const work = { description: "A new age of remote work. Targeted at developers", href: "https://coderank.net", image: "/images/work/devops/server-management.png", + metrics: [""], technologies: [ "Next JS", "Docker", @@ -49,6 +56,7 @@ export const work = { title: "Mediajury", description: "The ultimate debate platform", href: "https://mediajury.org", + metrics: [""], technologies: [ "SQL", "MariaDB", @@ -64,6 +72,7 @@ export const work = { title: "Circlenav", description: "The AI search engine done right", href: "https://circlenav.net", + metrics: [""], technologies: [ "SearXNG", "NextJS", @@ -81,6 +90,7 @@ export const work = { title: "TurboCI", description: "Cloud VPS orchestrator that runs any workload", href: "https://turboci.tben.me", + metrics: [""], technologies: [ "Bun", "Shell", @@ -98,6 +108,7 @@ export const work = { "Self Hosted Email solution for all my personal projects", href: "https://box.mailben.xyz/mail", image: "/images/work/devops/server-management.png", + metrics: [""], technologies: ["Linux", "Docker", "Mailinabox"], }, { @@ -106,6 +117,7 @@ export const work = { "Self Hosted repository for Git projects, NPM modules, Docker images, and more", href: "https://git.tben.me/tben", image: "/images/work/devops/server-management.png", + metrics: [""], technologies: ["Gitea", "Linux"], }, ], @@ -118,6 +130,7 @@ export const work = { title: "TurboCI", description: "Cloud VPS orchestrator that runs any workload", href: "https://turboci.tben.me", + metrics: [""], technologies: [ "Bun", "Shell", @@ -135,6 +148,7 @@ export const work = { "The easiest way to synchronize local and remote directories in real time", href: "https://git.tben.me/Moduletrace/turbo-sync", image: "/images/work/devops/server-management.png", + metrics: [""], technologies: ["Node JS", "Bun JS", "Shell Scripting", "Rsync"], }, { @@ -142,6 +156,7 @@ export const work = { description: "Run multiple concurrent processes", href: "https://git.tben.me/Moduletrace/batchrun", image: "/images/work/devops/server-management.png", + metrics: [""], technologies: ["Node JS"], }, ], diff --git a/components/pages/Home/(sections)/AboutSection.tsx b/components/pages/Home/(sections)/AboutSection.tsx index 648f237..97d52dd 100644 --- a/components/pages/Home/(sections)/AboutSection.tsx +++ b/components/pages/Home/(sections)/AboutSection.tsx @@ -10,15 +10,29 @@ export default function AboutSection() { return (
-

About Me

+

+ I Build & Operate Production Systems +

- I'm passionate and dedicated to solving problems using the - best technologies available. + I'm Benjamin Toby. DevOps/Platform engineer and CTO at + Summit Lending. I design, deploy, and operate infrastructure + that supports real businesses: +
    +
  • Automated CI/CD pipelines (TurboCI)
  • +
  • Multi-cloud deployments (AWS, GCP, Azure, Hetzner)
  • +
  • NGINX hardening, TLS, caching, rate limiting
  • +
  • Full-stack delivery (Next.js, Bun, SQL)
  • +
+ + I focus on measurable outcomes: faster deployments, lower + costs, fewer incidents. + + - Learn More About Me + View Resume
diff --git a/components/pages/Home/(sections)/MyWorkSection.tsx b/components/pages/Home/(sections)/MyWorkSection.tsx index 55e5428..88fca02 100644 --- a/components/pages/Home/(sections)/MyWorkSection.tsx +++ b/components/pages/Home/(sections)/MyWorkSection.tsx @@ -6,10 +6,11 @@ import Span from "@/components/lib/layout/Span"; import Stack from "@/components/lib/layout/Stack"; import { work } from "../(data)/work"; import Link from "@/components/lib/layout/Link"; -import React from "react"; +import React, { Fragment } from "react"; import Row from "@/components/lib/layout/Row"; import Divider from "@/components/lib/layout/Divider"; import { twMerge } from "tailwind-merge"; +import { CheckCircle2, Circle } from "lucide-react"; type Props = { noTitle?: boolean; @@ -19,7 +20,7 @@ type Props = { export default function MyWorkSection({ noTitle, expand }: Props) { const categories = Object.keys(work) as (keyof typeof work)[]; const [category, setCategory] = React.useState( - categories[0] + categories[0], ); if (expand) { @@ -53,7 +54,7 @@ export default function MyWorkSection({ noTitle, expand }: Props) { key={index} /> ); - } + }, )} @@ -88,7 +89,7 @@ export default function MyWorkSection({ noTitle, expand }: Props) { "cursor-pointer", isActive ? "" - : "opacity-40 hover:opacity-70" + : "opacity-40 hover:opacity-70", )} onClick={() => setCategory(ctgr)} > @@ -134,19 +135,39 @@ export function MyWorkPortfolioCard({ {portfolio.href} {portfolio.description} + {portfolio.metrics?.[0] && ( + + + + {portfolio.metrics.map((tch, _i) => ( + + + + + {tch} + + + + ))} + + + )} {portfolio.technologies?.[0] && ( - - {portfolio.technologies.map((tch, _i) => ( - - - {tch} - - {_i < portfolio.technologies.length - 1 && ( - - )} - - ))} - + + + + {portfolio.technologies.map((tch, _i) => ( + + + {tch} + + {_i < portfolio.technologies.length - 1 && ( + + )} + + ))} + + )} diff --git a/components/pages/Home/(sections)/footer-cta-section.tsx b/components/pages/Home/(sections)/footer-cta-section.tsx new file mode 100644 index 0000000..6f4f09c --- /dev/null +++ b/components/pages/Home/(sections)/footer-cta-section.tsx @@ -0,0 +1,53 @@ +import Button from "@/components/lib/layout/Button"; +import H2 from "@/components/lib/layout/H2"; +import Row from "@/components/lib/layout/Row"; +import Section from "@/components/lib/layout/Section"; +import Span from "@/components/lib/layout/Span"; +import Stack from "@/components/lib/layout/Stack"; +import { Contact, Mail } from "lucide-react"; + +export default function FooterCTASection() { + return ( +
+ +

Need Help With Infrastructure?

+ + Whether it's CI/CD, cost optimization, or production + hardening, I can help. + + + + + + {/* */} + +
+
+ ); +} diff --git a/components/pages/Home/index.tsx b/components/pages/Home/index.tsx index efbddd4..8fe5ab6 100644 --- a/components/pages/Home/index.tsx +++ b/components/pages/Home/index.tsx @@ -1,21 +1,42 @@ +import LucideIcon from "@/components/lib/elements/lucide-icon"; import Button from "@/components/lib/layout/Button"; +import Divider from "@/components/lib/layout/Divider"; import H1 from "@/components/lib/layout/H1"; import Row from "@/components/lib/layout/Row"; import Section from "@/components/lib/layout/Section"; import Span from "@/components/lib/layout/Span"; import Stack from "@/components/lib/layout/Stack"; -import { Contact, ScrollText } from "lucide-react"; +import { Contact, ScrollText, Terminal } from "lucide-react"; export default function Main() { return (
- Howdy Tech Enthusiasts! I'm Benjamin Toby -

- Software Engineer, DevOps Engineer, Full Stack Developer, - Software Architect, Philosopher, Solar Energy Enthusiast. + Benjamin Toby +

+ DevOps & Platform Engineer

- + + I help teams ship faster, cut infrastructure costs, and + achieve reliable production systems. + + + + + 99.99% uptime targets + + + + + ~10 deployments/week + + + + + Over 80% Operations cost reduction + + + + {/* +
); diff --git a/pages/index.tsx b/pages/index.tsx index 9690add..515b7b3 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -4,6 +4,7 @@ import AboutSection from "@/components/pages/Home/(sections)/AboutSection"; import Divider from "@/components/lib/layout/Divider"; import MySkillsSection from "@/components/pages/Home/(sections)/MySkillsSection"; import MyWorkSection from "@/components/pages/Home/(sections)/MyWorkSection"; +import FooterCTASection from "@/components/pages/Home/(sections)/footer-cta-section"; export default function Home() { return ( @@ -20,6 +21,8 @@ export default function Home() { + + ); } diff --git a/public/robots.txt b/public/robots.txt index 3e6c075..9abb192 100644 --- a/public/robots.txt +++ b/public/robots.txt @@ -7,5 +7,5 @@ Allow: / Sitemap: https://www.tben.me/sitemap.xml # Optional: disallow common non-content paths (uncomment if needed) -# Disallow: /api/ -# Disallow: /_next/ +Disallow: /api/ +Disallow: /_next/