Skip to content

feat(web): add a blog with three deep dives - #33

Merged
vkpdeveloper merged 1 commit into
mainfrom
feat/blog
Nov 5, 2026
Merged

vkpdeveloper merged 1 commit into
mainfrom
feat/blog

Conversation

@vkpdeveloper

Copy link
Copy Markdown
Owner

The site has docs but nowhere to publish longer writing, which is the kind of content that brings developers in from search and from sites like Hacker News.

This adds a blog:

  • /blog lists the posts and /blog/<slug> renders one. Posts are MDX in apps/web/content/blog, using a Fumadocs collection with a required description and date.
  • Each post gets a share image (/og/blog/<slug>/image.png), BlogPosting structured data and a sitemap entry. "Blog" is now in the top bar.
  • Three posts, with every claim checked against the provider code and the providers' docs:
    • One standup, three calendar APIs (recurring events and exceptions)
    • Finding a free slot across Google, Outlook and iCloud
    • Three ways a calendar tells you what changed (incremental sync)

Verified

  • biome check, bun run typecheck and a production next build pass. All three posts, their share images and the index are prerendered.
  • With the production server, I checked the sitemap (it lists /blog and all three posts), confirmed that the share image returns a 200 PNG and that the post HTML includes BlogPosting.
  • None of the posts overflows sideways at 375px. A long inline code name did at first, so inline code now wraps inside posts.

Blog index at 1280px
A post at 375px

@vercel

vercel Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
calsdk Ready Ready Preview Nov 5, 2026 6:57pm UTC

@coderabbitai

coderabbitai Bot commented Nov 5, 2026

Copy link
Copy Markdown

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 56 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 575e5dec-5853-4e08-b0d4-7de4486484d9
Commits

Reviewing files that changed from the base of the PR and between e38de89 and 7e6881a.

Files ignored due to path filters: 1

  • bun.lock is excluded by !**/*.lock
Files selected for processing: 11

  • apps/web/app/(home)/blog/[slug]/page.tsx
  • apps/web/app/(home)/blog/page.tsx
  • apps/web/app/og/blog/[slug]/image.png/route.tsx
  • apps/web/app/sitemap.ts
  • apps/web/content/blog/finding-free-time-across-calendars.mdx
  • apps/web/content/blog/incremental-calendar-sync.mdx
  • apps/web/content/blog/recurring-events-across-calendar-apis.mdx
  • apps/web/lib/layout.shared.tsx
  • apps/web/lib/shared.ts
  • apps/web/lib/source.ts
  • apps/web/package.json
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

A /blog index and post pages built from content/blog, with share
images, BlogPosting structured data and sitemap entries. The first
posts cover how Google, Outlook and CalDAV store recurring events,
find free time and report changes.
@vkpdeveloper
vkpdeveloper merged commit 14e9384 into main Nov 5, 2026
4 checks passed
@vkpdeveloper
vkpdeveloper deleted the feat/blog branch November 5, 2026 18:59

This branch was successfully deployed

1 active deployment
Preview — 7e6881a7 Deployed Nov 5, 2026 by vercel[bot]
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