Skip to content

Commit 2c3f0c0

Browse files
committed
fix: sort projects by year, descending
1 parent 04653ac commit 2c3f0c0

2 files changed

Lines changed: 2 additions & 14 deletions

File tree

‎app/projects/page.tsx‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ const ProjectSection = ({
8282
src={props.src}
8383
repo={props.repo}
8484
title={props.title}
85-
createdAt={props.createdAt}
8685
technologies={props.technologies}
8786
description={props.description}
8887
/>

‎lib/projects.ts‎

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ export type ProjectProps = {
4040
title: string;
4141
description: string;
4242
technologies: Technologies[];
43-
createdAt: string;
44-
year?: `'${number}`;
43+
year: `'${number}`;
4544
};
4645

4746
const unsortedProjects: ProjectProps[] = [
@@ -51,7 +50,6 @@ const unsortedProjects: ProjectProps[] = [
5150
technologies: ["rust", "library", "utility"],
5251
description:
5352
"A lightweight Rust library for managing decks of cards. Deal provides reusable primitives for creating, shuffling, and dealing cards in card-based applications and games.",
54-
createdAt: "2025-02-07T23:11:21Z",
5553
year: "'25",
5654
},
5755
{
@@ -60,7 +58,6 @@ const unsortedProjects: ProjectProps[] = [
6058
technologies: ["rust", "cli", "clap", "productivity", "notes"],
6159
description:
6260
"A command-line tool for capturing and revisiting short technical notes. TIL keeps useful discoveries organized and accessible directly from the terminal.",
63-
createdAt: "2024-08-09T23:40:26Z",
6461
year: "'24",
6562
},
6663
{
@@ -69,7 +66,6 @@ const unsortedProjects: ProjectProps[] = [
6966
technologies: ["go", "package", "collections", "utility"],
7067
description:
7168
"A Go package that provides chainable helper methods for working with slices. Pizza explores a more composable API for common collection transformations.",
72-
createdAt: "2024-07-18T00:25:45Z",
7369
year: "'24",
7470
},
7571
{
@@ -78,7 +74,6 @@ const unsortedProjects: ProjectProps[] = [
7874
technologies: ["rust", "interpreter", "language-design", "parsing"],
7975
description:
8076
"A programming language interpreter implemented in Rust. The project explores parsing, evaluation, environments, and the core mechanics behind executing source code.",
81-
createdAt: "2024-03-02T02:32:19Z",
8277
year: "'24",
8378
},
8479
{
@@ -87,7 +82,6 @@ const unsortedProjects: ProjectProps[] = [
8782
technologies: ["rust", "cli", "clap", "code-gen"],
8883
description:
8984
"A Rust command-line tool for generating Rust code from a simpler input format. Compose focuses on reducing repetitive implementation work through code generation.",
90-
createdAt: "2023-08-30T03:50:29Z",
9185
year: "'23",
9286
},
9387
{
@@ -97,7 +91,6 @@ const unsortedProjects: ProjectProps[] = [
9791
technologies: ["nextjs", "typescript", "react", "mdx", "tailwind"],
9892
description:
9993
"A personal website for showcasing projects, writing, and technical work. Built with the Next.js App Router, React Server Components, Tailwind, and an MDX-powered blog.",
100-
createdAt: "2023-06-27T23:07:02Z",
10194
year: "'23",
10295
},
10396
{
@@ -113,7 +106,6 @@ const unsortedProjects: ProjectProps[] = [
113106
],
114107
description:
115108
"A backend API for managing changelog entries and release notes. The project focuses on API design, authentication, relational data modeling, and structured persistence with PostgreSQL and Prisma.",
116-
createdAt: "2022-12-30T04:14:37Z",
117109
year: "'22",
118110
},
119111
{
@@ -123,7 +115,6 @@ const unsortedProjects: ProjectProps[] = [
123115
technologies: ["astro", "typescript", "preact", "vercel"],
124116
description:
125117
"A performance-focused marketing site for a Brooklyn-based business. Static generation, image optimization, reduced bundle sizes, and lazy hydration improved mobile load times by 60% and desktop load times by 71%.",
126-
createdAt: "2023-03-10T22:59:15Z",
127118
year: "'23",
128119
},
129120
{
@@ -141,7 +132,6 @@ const unsortedProjects: ProjectProps[] = [
141132
],
142133
description:
143134
"A full-stack social platform for rock climbers to share experiences and connect with others in the climbing community. The application includes profiles, authentication, image uploads, and community-oriented features.",
144-
createdAt: "2022-09-11T21:19:54Z",
145135
year: "'23",
146136
},
147137
{
@@ -151,11 +141,10 @@ const unsortedProjects: ProjectProps[] = [
151141
technologies: ["astro", "typescript", "preact", "netlify"],
152142
description:
153143
"An earlier version of my personal portfolio focused on freelance development work. The site was built as a fast, static experience with an emphasis on presentation and performance.",
154-
createdAt: "2023-03-31T06:34:30Z",
155144
year: "'23",
156145
},
157146
];
158147

159148
export const projects = [...unsortedProjects].sort((a, b) =>
160-
b.createdAt.localeCompare(a.createdAt),
149+
b.year.localeCompare(a.year),
161150
);

0 commit comments

Comments
 (0)