Portfolio
Juno Park, a design engineer: one page under a pendant lamp whose pull cord turns every light off.
One page, 14 components, 18 files.
Pages
Installation
npx shadcn@latest add https://neonkit.heyaadi.com/r/portfolio.jsonWrites the pages to app/portfolio, their sections to components/templates/portfolio and adds the 14 NeonKit components it's built from. Then open /portfolio in your app.
Built from Button, Copy Button, CRT Overlay, Cursor Glow, Dialog, Icons, Input, Kbd, Neon Sign, Sheet, Switch, Terminal, Textarea and Timeline.
Make it yours
components/templates/portfolio/config.ts
import type { NeonColor } from "@/lib/neon";
/** Where the template is mounted in your app. Every link between its pages starts here. */
export const basePath = "/portfolio";
/** The template's color. Change it here and every part of it follows. */
export const color: NeonColor = "amber";
export const brand = "Juno Park";
export const role = "Design engineer";
export const city = "Rotterdam";
export const email = "hello@junopark.studio";
export const availability = "Booking projects for March 2027";
/** In-page sections, in order. The header nav and the scroll spy read this. */
export const sections = [
{ id: "work", label: "Work" },
{ id: "now", label: "Now" },
{ id: "experience", label: "Experience" },
{ id: "writing", label: "Writing" },
{ id: "contact", label: "Contact" },
] as const;
export const socials = [
{ label: "GitHub", href: "https://github.com/junopark" },
{ label: "Mastodon", href: "https://mastodon.social/@junopark" },
{ label: "Read.cv", href: "https://read.cv/junopark" },
];Change color and the whole template re-tints. To serve it somewhere else, move app/portfolio and update basePath; every link between its pages starts there.
What lands in your repo
18 files, all of them yours to edit.
- app/portfolio/opengraph-image.tsx
- app/portfolio/page.tsx
- components/templates/portfolio/case-study.tsx
- components/templates/portfolio/config.ts
- components/templates/portfolio/contact.tsx
- components/templates/portfolio/covers.tsx
- components/templates/portfolio/data.ts
- components/templates/portfolio/experience.tsx
- components/templates/portfolio/fonts.ts
- components/templates/portfolio/footer.tsx
- components/templates/portfolio/header.tsx
- components/templates/portfolio/hero.tsx
- components/templates/portfolio/home.tsx
- components/templates/portfolio/lights.tsx
- components/templates/portfolio/now.tsx
- components/templates/portfolio/section-heading.tsx
- components/templates/portfolio/work.tsx
- components/templates/portfolio/writing.tsx