Skip to content

refactor: redesign projects page to match blog/experience style#5

Open
eglenn-dev wants to merge 2 commits into
mainfrom
claude/plan-projects-redesign-diytB
Open

refactor: redesign projects page to match blog/experience style#5
eglenn-dev wants to merge 2 commits into
mainfrom
claude/plan-projects-redesign-diytB

Conversation

@eglenn-dev
Copy link
Copy Markdown
Owner

Switch from 3-column card grid to single-column editorial list with
search (Cmd/Ctrl+F + URL-persisted via nuqs), consistent typography
(text-3xl h1, muted subtitle), divide-y separators, and shared accent
colors. Replace bulky Read/View buttons with inline icon links, drop
TagIcon from tech badges, and wrap the client component in Suspense
to satisfy prerender constraints.

Switch from 3-column card grid to single-column editorial list with
search (Cmd/Ctrl+F + URL-persisted via nuqs), consistent typography
(text-3xl h1, muted subtitle), divide-y separators, and shared accent
colors. Replace bulky Read/View buttons with inline icon links, drop
TagIcon from tech badges, and wrap the client component in Suspense
to satisfy prerender constraints.
Copilot AI review requested due to automatic review settings April 18, 2026 03:35
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 18, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
personal-site Ready Ready Preview Apr 18, 2026 3:44am

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors the /projects route to match the blog/experience editorial list layout, adding client-side search synced to the URL via nuqs and simplifying project actions into inline icon links, while keeping the server route prerender-friendly via Suspense.

Changes:

  • Introduces a new client component to render a single-column, divider-separated project list with URL-persisted search and Cmd/Ctrl+F focusing behavior.
  • Simplifies per-project actions to inline “Read/View” links with icons and removes the Tag icon from technology badges.
  • Updates the route’s page.tsx to render the new client component inside Suspense.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
app/projects/projects.tsx New client-rendered projects list with search, keyboard shortcuts, and inline action links/icons.
app/projects/page.tsx Replaces the old card grid with a Suspense wrapper around the new client component.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread app/projects/projects.tsx
Comment on lines +87 to +100
<Link
href={project.article}
target={
project.article.startsWith(
"http",
)
? "_blank"
: "_self"
}
className="inline-flex items-center gap-1 text-muted-foreground hover:text-primary transition-colors"
>
<span>Read</span>
<ArticleIcon />
</Link>
Copy link

Copilot AI Apr 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When opening an external URL in a new tab (target="_blank"), add rel="noopener noreferrer" to prevent reverse-tabnabbing. This link can render with _blank for http/https URLs but currently omits rel.

Copilot uses AI. Check for mistakes.
Comment thread app/projects/projects.tsx
Comment on lines +103 to +114
<Link
href={project.link}
target={
project.link.startsWith("http")
? "_blank"
: "_self"
}
className="inline-flex items-center gap-1 text-muted-foreground hover:text-primary transition-colors"
>
<span>View</span>
<OpenIcon />
</Link>
Copy link

Copilot AI Apr 18, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When project.link is external and you set target="_blank", include rel="noopener noreferrer" (consistent with mdx-components.tsx) to avoid reverse-tabnabbing.

Copilot uses AI. Check for mistakes.
Drop the right-aligned link cluster next to the title and place
"View site" / "Read article" as small icon links below the tech
badges. Clears the title row and treats the links as metadata,
giving the projects page its own layout instead of mirroring blog.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants