From 3844713f907376b41e524a8caf1a6c74b9d1eb90 Mon Sep 17 00:00:00 2001 From: Benjamin Toby Date: Tue, 31 Mar 2026 05:10:44 +0100 Subject: [PATCH] Updates --- bun.lock | 4 ++-- package.json | 2 +- .../main/(data)/{shcema.ts => schema.ts} | 0 src/layouts/main/index.tsx | 9 ++------- src/pages/(partials)/root-head.tsx | 13 +++++++++++++ src/pages/__root.tsx | 10 ++++++++++ src/pages/about.tsx | 9 +++++++-- src/pages/blog/[slug]/index.tsx | 17 ++++++++++------- src/pages/contact.tsx | 7 ++++++- src/pages/index.tsx | 8 ++------ src/pages/skills.tsx | 7 ++++++- src/pages/work.tsx | 7 ++++++- 12 files changed, 65 insertions(+), 28 deletions(-) rename src/layouts/main/(data)/{shcema.ts => schema.ts} (100%) create mode 100644 src/pages/(partials)/root-head.tsx diff --git a/bun.lock b/bun.lock index ff9fa6c..d98961d 100644 --- a/bun.lock +++ b/bun.lock @@ -6,7 +6,7 @@ "name": "new-personal-site", "dependencies": { "@moduletrace/buncid": "^1.0.7", - "@moduletrace/bunext": "^1.0.42", + "@moduletrace/bunext": "^1.0.43", "@moduletrace/datasquirel": "^5.7.57", "gray-matter": "^4.0.3", "html-to-react": "^1.7.0", @@ -187,7 +187,7 @@ "@moduletrace/buncid": ["@moduletrace/buncid@1.1.3", "https://git.tben.me/api/packages/Moduletrace/npm/%40moduletrace%2Fbuncid/-/1.1.3/buncid-1.1.3.tgz", { "dependencies": { "kill-port": "^2.0.1" }, "peerDependencies": { "typescript": "^5.0.0" }, "bin": { "buncid": "dist/buncid.js", "buncid-builds-next": "dist/rebuilds/next-js/index.js" } }, "sha512-7lOagXOPJLGdIcx2GkNcpEslMs6KRis4NpWffGjMOS7YlsGhUGvmTIiBk8/Q+fPbYsgtfgMCDX8y/sb2hwTShw=="], - "@moduletrace/bunext": ["@moduletrace/bunext@1.0.42", "https://git.tben.me/api/packages/Moduletrace/npm/%40moduletrace%2Fbunext/-/1.0.42/bunext-1.0.42.tgz", { "dependencies": { "@tailwindcss/postcss": "^4.2.2", "@types/bun": "latest", "@types/node": "^24.10.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "bun-plugin-tailwind": "^0.1.2", "chalk": "^5.6.2", "commander": "^14.0.2", "esbuild": "^0.27.4", "lightningcss-wasm": "^1.32.0", "lodash": "^4.17.23", "micromatch": "^4.0.8", "ora": "^9.0.0", "postcss": "^8.5.8", "react": "19.0.0", "react-dom": "19.0.0", "tailwindcss": "^4.2.2", "typescript": "^5.0.0" }, "bin": { "bunext": "dist/commands/index.js" } }, "sha512-DOQkuYbm4/KnBlphAFvzl5zKtUmgha/c/0Cbo/jptYqLwkF6/VOh0EHXs2bmoksQXMYPosljaGSDDlAV3PxVlA=="], + "@moduletrace/bunext": ["@moduletrace/bunext@1.0.43", "https://git.tben.me/api/packages/Moduletrace/npm/%40moduletrace%2Fbunext/-/1.0.43/bunext-1.0.43.tgz", { "dependencies": { "@tailwindcss/postcss": "^4.2.2", "@types/bun": "latest", "@types/node": "^24.10.0", "@types/react": "^19.2.2", "@types/react-dom": "^19.2.2", "bun-plugin-tailwind": "^0.1.2", "chalk": "^5.6.2", "commander": "^14.0.2", "esbuild": "^0.27.4", "lightningcss-wasm": "^1.32.0", "lodash": "^4.17.23", "micromatch": "^4.0.8", "ora": "^9.0.0", "postcss": "^8.5.8", "react": "19.0.0", "react-dom": "19.0.0", "tailwindcss": "^4.2.2", "typescript": "^5.0.0" }, "bin": { "bunext": "dist/commands/index.js" } }, "sha512-h0bp2+xDk2SgP32xC2jG5er8zOJ7pl9Tnhkv7OXvanExSrS6nzv3+Et6KAfw33SDQjk1uGhyjUHt+adGrzZFSw=="], "@moduletrace/datasquirel": ["@moduletrace/datasquirel@5.7.57", "https://git.tben.me/api/packages/Moduletrace/npm/%40moduletrace%2Fdatasquirel/-/5.7.57/datasquirel-5.7.57.tgz", { "dependencies": { "@types/ace": "^0.0.52", "@types/lodash": "^4.17.13", "@types/next": "^9.0.0", "@types/node": "^22.7.5", "@types/nodemailer": "^6.4.17", "@types/react": "^18.2.21", "@types/react-dom": "^19.0.0", "@types/tinymce": "^4.6.9", "dotenv": "^16.3.1", "generate-password": "^1.7.1", "google-auth-library": "^9.15.0", "inquirer": "^12.5.2", "lodash": "^4.17.21", "mariadb": "^3.4.4", "nodemailer": "^6.9.14", "sanitize-html": "^2.13.1", "sql-formatter": "^15.6.10" }, "bin": { "dsql-dump": "dist/engine/dump.js", "dsql-schema-to-typedef": "dist/engine/schema-to-typedef.js", "dsql-watch": "dist/engine/dsql.js" } }, "sha512-tPNfhMIwdptKjmraVqxj/qZ5yrO4QUZ/QxwZE+jIFj37UnUCXZOfF6yVWFClsqn2fNAjU2NDqrwC9w65ZzsmKg=="], diff --git a/package.json b/package.json index c411e71..e78cbbc 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ }, "dependencies": { "@moduletrace/buncid": "^1.0.7", - "@moduletrace/bunext": "^1.0.42", + "@moduletrace/bunext": "^1.0.43", "@moduletrace/datasquirel": "^5.7.57", "gray-matter": "^4.0.3", "html-to-react": "^1.7.0", diff --git a/src/layouts/main/(data)/shcema.ts b/src/layouts/main/(data)/schema.ts similarity index 100% rename from src/layouts/main/(data)/shcema.ts rename to src/layouts/main/(data)/schema.ts diff --git a/src/layouts/main/index.tsx b/src/layouts/main/index.tsx index 1cac7a0..2212ed9 100644 --- a/src/layouts/main/index.tsx +++ b/src/layouts/main/index.tsx @@ -5,14 +5,9 @@ import Footer from "./Footer"; import { twMerge } from "tailwind-merge"; import MobileMenu from "./(sections)/MobileMenu"; -type Props = PropsWithChildren & { - meta?: { - title?: string; - description?: string; - }; -}; +type Props = PropsWithChildren; -export default function Layout({ children, meta }: Props) { +export default function Layout({ children }: Props) { const [menuOpen, setMenuOpen] = React.useState(false); return ( diff --git a/src/pages/(partials)/root-head.tsx b/src/pages/(partials)/root-head.tsx new file mode 100644 index 0000000..91a7ebd --- /dev/null +++ b/src/pages/(partials)/root-head.tsx @@ -0,0 +1,13 @@ +import { SchemaJSON } from "@/src/layouts/main/(data)/schema"; +import { BunextPageHeadFCProps } from "@moduletrace/bunext/types"; + +export const RootHead = ({}: BunextPageHeadFCProps) => { + return ( + + ); +}; diff --git a/src/pages/__root.tsx b/src/pages/__root.tsx index 49321d7..098a53d 100644 --- a/src/pages/__root.tsx +++ b/src/pages/__root.tsx @@ -6,7 +6,9 @@ import { BunextRootComponentProps, BunextHTMLProps, BunextRouteConfig, + BunextPageModuleMeta, } from "@moduletrace/bunext/types"; +import { RootHead } from "./(partials)/root-head"; export type AppContextType = { pageProps: PagePropsType; @@ -40,3 +42,11 @@ export const config: BunextRouteConfig = { cacheExpiry: 60 * 60, // 1 hour cachePage: true, }; + +export const meta: BunextPageModuleMeta = { + title: `10X Devops/SRE Engineer | Tben.me`, + description: + "Software Engineer, DevOps Engineer, Full Stack Developer, Software Architect, Philosopher, Solar Energy Enthusiast.", +}; + +export const Head = RootHead; diff --git a/src/pages/about.tsx b/src/pages/about.tsx index 9be5bc4..a6b72e7 100644 --- a/src/pages/about.tsx +++ b/src/pages/about.tsx @@ -1,10 +1,15 @@ import Layout from "@/src/layouts/main"; import Main from "@/src/components/pages/about"; +import { BunextPageModuleMeta } from "@moduletrace/bunext/types"; -export default function ContactPage() { +export default function AboutMePage() { return ( - +
); } + +export const meta: BunextPageModuleMeta = { + title: `About Me | Tben.me`, +}; diff --git a/src/pages/blog/[slug]/index.tsx b/src/pages/blog/[slug]/index.tsx index 278bc59..6c0f4ab 100644 --- a/src/pages/blog/[slug]/index.tsx +++ b/src/pages/blog/[slug]/index.tsx @@ -1,16 +1,19 @@ import Layout from "@/src/layouts/main"; import Main from "@/src/components/pages/blog/slug"; import { PagePropsType } from "@/src/types"; +import { BunextPageModuleMetaFn } from "@moduletrace/bunext/types"; -export default function SingleBlogPost({ blogPost }: PagePropsType) { +export default function SingleBlogPost() { return ( - +
); } + +export const meta: BunextPageModuleMetaFn = async ({ serverRes }) => { + return { + title: serverRes?.props?.blogPost?.meta_title, + description: serverRes?.props?.blogPost?.meta_description, + }; +}; diff --git a/src/pages/contact.tsx b/src/pages/contact.tsx index aba7130..5c47bfe 100644 --- a/src/pages/contact.tsx +++ b/src/pages/contact.tsx @@ -1,10 +1,15 @@ import Layout from "@/src/layouts/main"; import Main from "@/src/components/pages/contact"; +import { BunextPageModuleMeta } from "@moduletrace/bunext/types"; export default function ContactPage() { return ( - +
); } + +export const meta: BunextPageModuleMeta = { + title: "Contact Me | Tben.me", +}; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index b3e60b7..2efed12 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -5,15 +5,11 @@ import Divider from "@/src/components/lib/layout/Divider"; import MySkillsSection from "@/src/components/pages/Home/(sections)/MySkillsSection"; import MyWorkSection from "@/src/components/pages/Home/(sections)/MyWorkSection"; import FooterCTASection from "@/src/components/pages/Home/(sections)/footer-cta-section"; +import { BunextPageModuleMeta } from "@moduletrace/bunext/types"; export default function Home() { return ( - +
diff --git a/src/pages/skills.tsx b/src/pages/skills.tsx index 7f53a2d..52c0865 100644 --- a/src/pages/skills.tsx +++ b/src/pages/skills.tsx @@ -2,13 +2,18 @@ import Layout from "@/src/layouts/main"; import Main from "@/src/components/pages/skills"; import Divider from "@/src/components/lib/layout/Divider"; import MySkillsSection from "@/src/components/pages/Home/(sections)/MySkillsSection"; +import { BunextPageModuleMeta } from "@moduletrace/bunext/types"; export default function SkillsPage() { return ( - +
); } + +export const meta: BunextPageModuleMeta = { + title: "My Skills | Tben.me", +}; diff --git a/src/pages/work.tsx b/src/pages/work.tsx index 1a2c51a..4e60e38 100644 --- a/src/pages/work.tsx +++ b/src/pages/work.tsx @@ -2,13 +2,18 @@ import Layout from "@/src/layouts/main"; import Main from "@/src/components/pages/work"; import Divider from "@/src/components/lib/layout/Divider"; import MyWorkSection from "@/src/components/pages/Home/(sections)/MyWorkSection"; +import { BunextPageModuleMeta } from "@moduletrace/bunext/types"; export default function WorkPage() { return ( - +
); } + +export const meta: BunextPageModuleMeta = { + title: "My Work | Tben.me", +};