Skip to content

Blog Rebuild#80

Merged
tomaszantas merged 15 commits intoredesign/layoutfrom
LFE-9291-blog-redesign
Apr 17, 2026
Merged

Blog Rebuild#80
tomaszantas merged 15 commits intoredesign/layoutfrom
LFE-9291-blog-redesign

Conversation

@felixkrrr
Copy link
Copy Markdown
Collaborator

@felixkrrr felixkrrr commented Apr 15, 2026

Core Changes:

  • rebuilt /blog index page including updating the side-bars
  • fixed blog pages by [1] adding left sidebar, [2] fixing right sidebar, [3] fixing content width

Open ToDo:

  • build right sidebar on /blog index

Blog Index
CleanShot 2026-04-16 at 10 14 46@2x

Blog Posts
CleanShot 2026-04-16 at 10 16 23@2x

@cursor
Copy link
Copy Markdown

cursor bot commented Apr 15, 2026

You have used all of your free Bugbot PR reviews.

To receive reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

@vercel
Copy link
Copy Markdown

vercel bot commented Apr 15, 2026

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

Project Deployment Actions Updated (UTC)
langfuse-docs Ready Ready Preview, Comment Apr 17, 2026 5:01am

Request Review

@github-actions
Copy link
Copy Markdown

@claude review

@felixkrrr felixkrrr requested a review from tomaszantas April 16, 2026 08:18
@felixkrrr
Copy link
Copy Markdown
Collaborator Author

PR overview

Rebuilds the blog index page and adds a left sidebar + right TOC to individual blog post pages. The old monolithic BlogIndex component is broken into focused pieces with shared filter state via context.

File-by-file

New components

  • components/blog/BlogPageClient.tsx — Client wrapper for /blog index. Composes the three-column layout (sidebar, main content with hero/hatch background, aside) and provides BlogFilterProvider so all children share filter state.
  • components/blog/BlogFilterContext.tsx — React context managing tag selection, search query, and derived lists (all posts, filtered, highlights). Replaces the inline useState/useMemo logic that lived in the old BlogIndex.
  • components/blog/BlogSidebar.tsx — Left sidebar for the blog index page with tag/category filters and newsletter signup.
  • components/blog/BlogPostSidebar.tsx — Left sidebar for individual blog post pages (rendered inside the fumadocs DocsLayout grid via sidebar.component). Shows category links and newsletter signup.
  • components/blog/BlogAside.tsx — Right aside for the blog index, wraps TocCommunity in the shared AsideShell.
  • components/blog/BlogHighlightCards.tsx — Highlights card section at the top of the blog index, showing pinned/featured posts.
  • components/blog/BlogPostList.tsx — Paginated All Posts list with inline search and category dropdown.
  • components/blog/BlogMobileFilters.tsx — Horizontal scrollable tag pills + search input shown on mobile/tablet where the sidebar is hidden.
  • components/blog/BlogCategoryDropdown.tsx — Dropdown for filtering by category inside the post list header.
  • components/blog/utils.ts — Shared helpers: normalizeTags, computeTagCounts, formatDate, plus shared types TagWithCount and BlogFrontMatter.

Shared layout primitives

  • components/home/layout/PageChrome.tsx — Extracted the banner/navbar/AI-search/force-light-mode chrome out of HomeLayout so it can be reused standalone (e.g. blog index page uses it without the full HomeLayout grid).
  • components/home/layout/SidebarShell.tsx — Reusable sticky left sidebar shell (positioning, scroll, border chrome) shared by HomeSidebar and BlogSidebar.
  • components/home/layout/AsideShell.tsx — Same for right sidebars, with AI-search-aware visibility.
  • components/layout/index.ts — Re-exports the three new primitives.

Modified files

  • components/home/layout/HomeLayout.tsx — Refactored to use PageChrome internally and accept optional leftSidebar/rightSidebar overrides so pages can swap in custom sidebars.
  • components/blog/BlogIndex.tsx — Gutted the old all-in-one component. Now a thin shell that pulls highlightPosts/listPosts from BlogFilterContext and renders BlogHighlightCards + BlogPostList.
  • app/blog/page.tsx — Simplified: passes pages to BlogPageClient instead of inlining layout/header/signup.
  • app/blog/layout.tsx — Switched from HomeLayout to PageChrome since the blog index manages its own grid.
  • app/[section]/layout.tsx — Added a dedicated blog branch that renders DocsLayout with the left BlogPostSidebar, custom sidebar width, and flex-1 wrapper so the grid fills the viewport.
  • app/[section]/SectionLayoutWrapper.tsx — Accepts optional className prop (used to add flex-1 for the blog layout).
  • app/[section]/[[...slug]]/page.tsx — Extracted getDocsPageClassName helper; blog post pages get max-w-full blog-post-page class so CSS can constrain content width while the grid stays full-width.
  • components/ProductUpdateSignup.tsx — Added compact prop; changed placeholder to email, button text to Subscribe, and improved sizing/layout for use in tight sidebar contexts.
  • components/ui/input.tsx — Restyled to use semantic design tokens (border-line-structure, bg-surface-bg, etc.) instead of shadcn defaults.
  • source.config.ts — Added highlight field to the blog frontmatter schema.
  • src/overrides.css — Added blog-post-layout styles: sidebar width, content max-width, TOC stretch.

Content

  • 3 blog posts (weekly-digest-ai-skill, optimizing-ai-skill-with-autoresearch, llm-as-a-judge-production-monitoring) — added highlight: true frontmatter so they appear in the Highlights section.

@felixkrrr felixkrrr requested review from tomaszantas and removed request for tomaszantas April 16, 2026 08:46
Comment thread components/home/layout/AsideShell.tsx
Comment thread components/blog/BlogPageClient.tsx Outdated
@felixkrrr
Copy link
Copy Markdown
Collaborator Author

@tomaszantas i think this is it - already included /users and /changelog

What changed

This branch delivers the blog redesign (LFE-9291) and related content listing work, on top of the broader site shell / marketing redesign already merged into this line of development.

Fundamental changes:

  1. Blog — Dedicated routes and UI: index with filters/highlights, post list, sidebar/aside, mobile filters, and shared blog utilities under app/blog/ and components/blog/.

  2. Changelog — Reworked index (including SEO-oriented updates) and per-entry routes for individual changelog posts (app/changelog/, lib/changelog-index.ts, etc.).

  3. Users / customers/users area and customer list patterns aligned with blog/changelog (app/users/, components/customers/).

  4. Shared infrastructure — Common primitives for section pages: loadPage, buildSectionMetadata, lib/mdx-page.ts, lib/section-registry.ts, and reusable list rows (e.g. HoverPostRow) used across blog, changelog, and customers.

  5. App shell & styling — Section layout cleanup, nav/docs chrome, and global styling consistent with the redesign; not limited to blog.

Scope note: The diff vs main is large because it includes the full redesign history and upstream content merges. Reviewers should focus on the areas above unless the PR explicitly owns wider marketing/docs changes.

Known regression (follow-up): Handbook routes through the catch-all [section] layout with HomeLayout and does not show handbook-specific sidebar/tree navigation anymore. Tracked in a TODO on app/[section]/layout.tsx; restore handbook nav in a follow-up.


How to review

  • Prioritize: app/blog/, app/changelog/, app/users/, components/blog/, components/changelog/, components/customers/, components/lists/, and lib/mdx-page.ts / lib/section-registry.ts / lib/changelog-index.ts.

  • Manual pass: Blog index (filters, categories, mobile), blog posts, changelog index and single entries, users/customers pages, 404s, and redirects (lib/redirects.js, next.config.mjs).

  • SEO: Titles, descriptions, OG for blog/changelog; sitemap/exclude scripts if touched.

  • Regression sweep: Global nav and a few docs/marketing pages—shared layout and styles may affect more than blog.

  • Checks: pnpm run link-check (and sitemap check if you use it for releases).


@tomaszantas tomaszantas merged commit 8c5c63b into redesign/layout Apr 17, 2026
5 of 8 checks passed
@tomaszantas tomaszantas deleted the LFE-9291-blog-redesign branch April 17, 2026 05:17
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.

2 participants