Skip to content

feat: add blog system with SEO optimization#26

Merged
codewizdave merged 8 commits into
mainfrom
feat/blog-system
Jun 5, 2026
Merged

feat: add blog system with SEO optimization#26
codewizdave merged 8 commits into
mainfrom
feat/blog-system

Conversation

@martyy-code

Copy link
Copy Markdown
Contributor

Summary

  • Blog collection: Configure blog posts in source.config.ts with author and date fields
  • Blog listing page: Grid layout showing all posts sorted by date
  • Individual blog posts: Full article page with Article JSON-LD schema
  • Share button: Copy-to-clipboard functionality for easy sharing
  • RSS feed: /blog/rss.xml for feed subscribers and SEO
  • Blog OG images: Dynamic OG images for each blog post
  • Sitemap integration: Blog routes included in sitemap
  • RSS link in head: Auto-discovery for RSS readers
  • First blog post: "Getting Started with @deessejs/errors"

Changes

File Change
apps/web/source.config.ts Added blog collection with author + date schema
apps/web/src/lib/source.ts Added blogSource loader
apps/web/src/app/(home)/blog/page.tsx Blog listing page
apps/web/src/app/(home)/blog/[slug]/page.tsx Individual blog post with Article JSON-LD
apps/web/src/app/(home)/blog/[slug]/page.client.tsx Share button component
apps/web/src/app/(home)/blog/rss.xml/route.ts RSS 2.0 feed
apps/web/src/app/og/blog/[slug]/route.tsx Dynamic OG images for blog posts
apps/web/src/app/sitemap.ts Added blog routes
apps/web/src/app/layout.tsx Added RSS link to head
apps/web/content/blog/getting-started-with-deessejs-errors.mdx First blog post
package.json Added feed package for RSS generation

SEO Features

  • Article JSON-LD schema for rich results
  • Open Graph metadata (type: 'article', publishedTime, authors)
  • Canonical URLs
  • RSS feed for crawlability
  • Dynamic OG images with post title + date
  • Sitemap integration

Test plan

  • Visit /blog — shows blog listing
  • Visit /blog/getting-started-with-deessejs-errors — shows article
  • View page source — check Article JSON-LD, OG metadata
  • Visit /blog/rss.xml — verify RSS feed
  • Test OG image at /og/blog/getting-started-with-deessejs-errors/image.png
  • Verify sitemap includes blog routes

🤖 Generated with Claude Code

- Configure blog collection in source.config.ts
- Create blog listing page with post grid
- Create individual blog post page with Article JSON-LD
- Add share button component
- Create RSS feed at /blog/rss.xml
- Add blog OG images at /og/blog/[slug]
- Update sitemap to include blog routes
- Add RSS link to layout head
- Write first blog post: "Getting Started with @deessejs/errors"
- Install feed package for RSS generation

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 5, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
errors-web Ready Ready Preview, Comment Jun 5, 2026 9:47am

Add Blog link to the navigation bar using Fumadocs links prop
with BookIcon and nested-url active mode.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Only show icon-type links (like GitHub) in the docs sidebar.
Text links like Blog are shown in navbar only.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add Docs link with FileTextIcon alongside Blog link in navbar.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add ExternalLinkIcon with external indicator for deessejs.com.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@codewizdave codewizdave merged commit 64c67bc into main Jun 5, 2026
6 checks passed
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