"use client";
import { motion } from "framer-motion";
import Link from "next/link";
import { Globe, Smartphone, ArrowLeft } from "lucide-react";
import { use } from "react";
const categories = {
web: {
title: "Web Systems",
icon: ,
description: "Architecting scalable web applications and distributed systems.",
projects: [
{
name: "Ratoong",
detail: "Professional production platform.",
stack: ["Node.js", "PostgreSQL", "Caddy"]
},
{
name: "Datasaur",
detail: "Full-stack data science pipeline.",
stack: ["Python", "FastAPI", "Next.js"]
}
]
},
mobile: {
title: "Mobile Apps",
icon: ,
description: "Building cross-platform experiences with Flutter and native integrations.",
projects: [
{
name: "Flutter App 1",
detail: "Active Development - Coming Soon",
stack: ["Flutter", "Dart", "Firebase"]
},
{
name: "Flutter App 2",
detail: "Internal R&D Prototype",
stack: ["Flutter", "Riverpod", "SQLite"]
}
]
}
};
export default function CategoryPage({ params }: { params: Promise<{ category: string }> }) {
const resolvedParams = use(params);
const category = resolvedParams.category;
const data = categories[category as keyof typeof categories];
if (!data) return
Category not found.
;
if (!data) {
return (
404: Category Not Found
Path: /projects/{category}
Return Home
);
}
return (
BACK TO DASHBOARD
{data.icon}
{data.title}
{data.description}
{data.projects.map((project, index) => (
{project.name}
{project.detail}
{project.stack.map(s => (
{s}
))}
))}
);
}