Skip to content

fix(landing): align author-page UI with the site shell and link bylines to it#5655

Merged
waleedlatif1 merged 5 commits into
stagingfrom
fix-author-pages-ui
Jul 14, 2026
Merged

fix(landing): align author-page UI with the site shell and link bylines to it#5655
waleedlatif1 merged 5 commits into
stagingfrom
fix-author-pages-ui

Conversation

@waleedlatif1

Copy link
Copy Markdown
Collaborator

Summary

  • Rebuilds the blog/library author-profile page to match the site's standard page-shell pattern (header, BackLink, framed post-list rows with hover states) instead of the previous bare, undersized container with a raw 2-column image grid
  • Adds a styled not-found fallback matching the comparisons/integrations pattern
  • Changes the byline author link on every post from the author's external X/GitHub profile to the internal author page — previously the author page had zero UI entry points and was only reachable via the sitemap
  • Fixes both author-page route files to match on any of a post's co-authors instead of only the primary author, consistent with how the sitemap enumerates authors

Type of Change

  • Bug fix / UI polish

Testing

  • bunx tsc --noEmit clean
  • bun run lint clean
  • Real production build + verified live:
    • Byline on /blog/mothership links to /blog/authors/emir
    • /blog/authors/emir and /library/authors/waleed return 200 with the rebuilt shell
    • Unknown author id renders the styled not-found fallback

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@vercel

vercel Bot commented Jul 14, 2026

Copy link
Copy Markdown

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

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
docs Skipped Skipped Jul 14, 2026 12:59am

Request Review

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cursor review

@cursor

cursor Bot commented Jul 14, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Landing-only UI, routing, and SEO URL tweaks with no auth, data, or payment impact.

Overview
Blog and library author profile pages are rebuilt to use the same landing shell as index/post pages: BackLink, wide layout, framed post rows (date, title, description, thumbnail), footer CTA, and a styled not-found state with a link back to the section. The author loading skeleton follows the same layout.

Post bylines now link to {basePath}/authors/{id} instead of each author’s external profile, so author pages are reachable from content. Blog and library author routes resolve posts and metadata by matching any co-author in authors, not only the primary author, and pass sectionName into the shared author page.

Author URLs in the sitemap and SEO (canonical, JSON-LD) use encodeURIComponent for ids; author JSON-LD image is normalized when avatarUrl is a site-relative path.

Reviewed by Cursor Bugbot for commit b593e88. Configure here.

@greptile-apps

greptile-apps Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR refreshes the author-page experience and routes post bylines to internal author pages. The main changes are:

  • Rebuilt blog and library author pages with the landing-page shell.
  • Added a styled author not-found fallback.
  • Linked post bylines to internal author routes.
  • Matched author pages against co-authors, not only primary authors.
  • Encoded author IDs in sitemap, canonical, and JSON-LD author URLs.

Confidence Score: 5/5

This looks safe to merge.

  • No blocking issues found in the changed code.

Important Files Changed

Filename Overview
apps/sim/app/(landing)/components/content-post-page/content-post-page.tsx Post bylines now link to encoded internal author-page routes.
apps/sim/app/sitemap.ts Author sitemap entries now use encoded author route segments.
apps/sim/lib/content/seo.ts Author canonical and JSON-LD URLs now use encoded author route segments.
apps/sim/app/(landing)/blog/authors/[id]/page.tsx Blog author pages now include posts where the author is listed as a co-author.
apps/sim/app/(landing)/library/authors/[id]/page.tsx Library author pages now include posts where the author is listed as a co-author.
apps/sim/app/(landing)/components/content-author-page/content-author-page.tsx Author pages now render with the landing-page shell, framed post rows, and a styled not-found state.

Reviews (5): Last reviewed commit: "fix(landing): encode author id consisten..." | Re-trigger Greptile

@greptile-apps

greptile-apps Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR brings author pages into the standard landing-page shell. The main changes are:

  • Rebuilt blog and library author pages with shared shell styling.
  • Added a styled author not-found fallback.
  • Linked post bylines to internal author pages.
  • Matched author pages against co-authors, not only the primary author.

Confidence Score: 5/5

This looks safe to merge after a small author-link cleanup.

  • Co-author filtering matches the content metadata shape.
  • The new author-page props are passed by the current callers.
  • The new UI imports and image layout match existing component patterns.
  • Author byline links should encode the id before using it as a route segment.

apps/sim/app/(landing)/components/content-post-page/content-post-page.tsx

Important Files Changed

Filename Overview
apps/sim/app/(landing)/blog/authors/[id]/page.tsx Uses the normalized authors array to include co-authored blog posts and passes the section label into the shared author page.
apps/sim/app/(landing)/library/authors/[id]/page.tsx Mirrors the blog author route update for library posts and co-author matching.
apps/sim/app/(landing)/components/content-author-page/content-author-page.tsx Rebuilds the shared author page UI with BackLink, framed post rows, CTA, and a styled fallback.
apps/sim/app/(landing)/components/content-author-page/content-author-loading.tsx Updates the author-page loading skeleton to match the new shell and list layout.
apps/sim/app/(landing)/components/content-post-page/content-post-page.tsx Changes byline author links from external profiles to internal author routes, with one route-segment hardening issue noted.

Reviews (2): Last reviewed commit: "fix(landing): align author-page UI with ..." | Re-trigger Greptile

Comment thread apps/sim/app/(landing)/components/content-post-page/content-post-page.tsx Outdated
Comment thread apps/sim/app/(landing)/components/content-author-page/content-author-loading.tsx Outdated
…es to it

Rebuilds ContentAuthorPage/ContentAuthorLoading to match the standard
page-shell pattern used by ContentIndexPage/ContentPostPage (max-w-[1460px]
header, BackLink, framed post-list rows with hover states) instead of the
previous bare max-w-[900px] container with a 2-column image grid. Adds a
styled not-found fallback matching the comparisons/integrations pattern.

The byline author Link in ContentPostPage now points at the internal
author page (/{basePath}/authors/{id}) instead of the author's external
X/GitHub profile, giving the author page a real navigation entry point for
the first time - previously it was only reachable via the sitemap.

Also fixes both author-page route files to match on any of a post's
authors (post.authors.some(a => a.id === id)) instead of only the primary
author (post.author.id === id), so posts with co-authors show up on every
listed author's page, consistent with the sitemap's own author enumeration.
- Not-found fallback no longer renders a nested <main id='main-content'>
  - blog/layout.tsx and library/layout.tsx already provide that landmark,
  so the fallback now uses <section> like the rest of the component.
- Byline author link now encodeURIComponent()s the author id before
  using it as a route segment.
- Loading skeleton's post-list wrapper now matches the real page's
  mx-auto max-w-[1460px] shell (was mx-20/max-lg:mx-8, which stretches
  past the header on wide viewports).
Same class of bug as the earlier article-image fix: author.avatarUrl is a
site-relative path, so Person.image was emitting an invalid relative URL
for crawlers. Prefixes with SITE_URL, matching buildArticleJsonLd's
existing pattern.
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cursor review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 807a7a8. Configure here.

…vention

max-w-[1446px]/px-12 was copied from comparisons/not-found.tsx, which turns
out to be the outlier - models/not-found.tsx and integrations/not-found.tsx
both use max-w-[1460px]/px-20, matching the rest of the site's shell and
this component's own success-state header.
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cursor review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 760a77f. Configure here.

The byline link encoded the author id, but buildAuthorMetadata's canonical
URL, buildAuthorGraphJsonLd's Person.url/BreadcrumbList item, and
sitemap.ts's buildAuthorPages URL still interpolated the raw id - a
mismatch could point sitemap/canonical/structured-data URLs at a
different route than the actual page. All four now encodeURIComponent()
consistently.
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cursor review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit b593e88. Configure here.

@waleedlatif1 waleedlatif1 merged commit 5dc8d8f into staging Jul 14, 2026
13 checks passed
@waleedlatif1 waleedlatif1 deleted the fix-author-pages-ui branch July 14, 2026 01:02
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.

1 participant