export interface Talk { id: string; name: string; description: string; link: string; date?: string; venue?: string; } export interface Project { id: string; name: string; description: string; link: string; technologies?: string[]; status?: string; } export interface SocialLink { id: string; name: string; url: string; icon: string; ariaLabel: string; } export interface TechLink { id: string; name: string; url: string; icon: string; ariaLabel: string; } export interface NavigationItem { id: string; name: string; path: string; tooltip: string; icon: string; isActive?: (path: string) => boolean; } export const talks: Talk[] = [ { id: "devedmonton-hateoas", name: "Hypermedia as the engine of application state - An Introduction", description: "A basic introduction to the concepts behind HATEOAS or Hypermedia as the engine of application state.", link: "/files/DevEdmonton_Talk_HATEOAS.pdf", venue: "Dev Edmonton Society", }, ]; export const projects: Project[] = [ { id: "bluesky-pds-manager", name: "BlueSky PDS Manager", description: "A web-based BlueSky PDS Manager. Manage your invite codes and users with a simple web UI.", link: "https://pdsman.atri.dad", }, { id: "pollo", name: "Pollo", description: "A dead-simple real-time voting tool.", link: "https://git.atri.dad/atridad/pollo", }, { id: "goth-stack", name: "GOTH Stack", description: "🚀 A Web Application Template Powered by HTMX + Go + Tailwind 🚀", link: "https://git.atri.dad/atridad/goth.stack", }, { id: "himbot", name: "Himbot", description: "A discord bot written in Go. Loosly named after my username online (HimbothySwaggins).", link: "https://git.atri.dad/atridad/himbot", }, { id: "loadr", name: "loadr", description: "A lightweight REST load testing tool with robust support for different verbs, token auth, and performance reports.", link: "https://git.atri.dad/atridad/loadr", }, ]; export const sections = { resume: { name: "Resume", path: "/resume", description: "Professional experience, skills, and background" }, posts: { name: "Blog Posts", path: "/posts", description: "Technical articles and thoughts" }, talks: { name: "Talks", path: "/talks", description: "Conference talks and presentations" }, projects: { name: "Projects", path: "/projects", description: "Personal and professional projects" } } as const; export const socialLinks: SocialLink[] = [ { id: "email", name: "Email", url: "mailto:me@atri.dad", icon: "mdi:email", ariaLabel: "Email me" }, { id: "rss", name: "RSS Feed", url: "/feed", icon: "mdi:rss", ariaLabel: "RSS Feed" }, { id: "gitea", name: "Forgejo (Git)", url: "https://git.atri.dad/atridad", icon: "simple-icons:gitea", ariaLabel: "Forgejo (Git)" }, { id: "bluesky", name: "Bluesky", url: "https://bsky.app/profile/atri.dad", icon: "simple-icons:bluesky", ariaLabel: "Bluesky Profile" }, { id: "spotify", name: "Spotify", url: "https://open.spotify.com/user/31pjwuuqwnn5zr7fnhfjjmi7c4bi?si=1be2bfdc844c4d85", icon: "spotify", // Special component ariaLabel: "Spotify Profile" } ]; export const techLinks: TechLink[] = [ { id: "react", name: "React", url: "https://react.dev/", icon: "simple-icons:react", ariaLabel: "React" }, { id: "typescript", name: "TypeScript", url: "https://www.typescriptlang.org/", icon: "simple-icons:typescript", ariaLabel: "TypeScript" }, { id: "astro", name: "Astro", url: "https://astro.build/", icon: "simple-icons:astro", ariaLabel: "Astro" }, { id: "go", name: "Go", url: "https://go.dev/", icon: "simple-icons:go", ariaLabel: "Go" }, { id: "postgresql", name: "PostgreSQL", url: "https://www.postgresql.org/", icon: "simple-icons:postgresql", ariaLabel: "PostgreSQL" }, { id: "redis", name: "Redis", url: "https://redis.io/", icon: "simple-icons:redis", ariaLabel: "Redis" }, { id: "docker", name: "Docker", url: "https://www.docker.com/", icon: "simple-icons:docker", ariaLabel: "Docker" } ]; export const navigationItems: NavigationItem[] = [ { id: "home", name: "Home", path: "/", tooltip: "Home", icon: "Home" }, { id: "posts", name: "Posts", path: "/posts", tooltip: "Posts", icon: "NotebookPen", isActive: (path: string) => path.startsWith("/posts") || path.startsWith("/post/") }, { id: "resume", name: "Resume", path: "/resume", tooltip: "Resume", icon: "BriefcaseBusiness" }, { id: "projects", name: "Projects", path: "/projects", tooltip: "Projects", icon: "CodeXml", isActive: (path: string) => path.startsWith("/projects") }, { id: "talks", name: "Talks", path: "/talks", tooltip: "Talks", icon: "Megaphone", isActive: (path: string) => path.startsWith("/talks") }, { id: "terminal", name: "Terminal", path: "/terminal", tooltip: "Terminal", icon: "TerminalIcon" } ];