diff --git a/components/ProjectCard.tsx b/components/ProjectCard.tsx new file mode 100644 index 0000000..5d1af51 --- /dev/null +++ b/components/ProjectCard.tsx @@ -0,0 +1,37 @@ +import { LuLink } from "@preact-icons/lu"; + +interface Project { + id: string; + name: string; + description: string; + link: string; +} + +export default function ProjectCard(props: { project: Project }) { + const { project } = props; + return ( +
+
+

+ {project.name} +

+ +

+ {project.description} +

+ +
+ + + +
+
+
+ ); +} diff --git a/routes/posts.tsx b/routes/posts.tsx index 1c107fc..345ed89 100644 --- a/routes/posts.tsx +++ b/routes/posts.tsx @@ -13,7 +13,7 @@ export default function PostsPage(props: PageProps) { const posts = props.data; return (
-

+

Posts

diff --git a/routes/projects.tsx b/routes/projects.tsx index 54ad610..723a9d8 100644 --- a/routes/projects.tsx +++ b/routes/projects.tsx @@ -1,3 +1,60 @@ -export default function Projects() { - return

Projects Page

; +import ProjectCard from "../components/ProjectCard.tsx"; + +interface Project { + id: string; + name: string; + description: string; + link: string; +} + +export default function ProjectsPage() { + 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", + }, + ]; + + return ( +
+

+ Projects +

+
+ {projects.map((project) => ( + + ))} +
+
+ ); }