Skip to content

feat(web): blog at sqlritedb.com/blog with 5 launch posts (SQLR-34)#120

Merged
joaoh82 merged 1 commit intomainfrom
sqlr-34-blog
May 10, 2026
Merged

feat(web): blog at sqlritedb.com/blog with 5 launch posts (SQLR-34)#120
joaoh82 merged 1 commit intomainfrom
sqlr-34-blog

Conversation

@joaoh82
Copy link
Copy Markdown
Owner

@joaoh82 joaoh82 commented May 10, 2026

Summary

  • Adds an MDX-driven blog at /blog on the marketing site: index, /blog/[slug] detail, /blog/tags/[tag], /blog/rss.xml (force-static), and per-post dynamic OG/Twitter images.
  • Posts live in web/content/blog/*.mdx with gray-matter frontmatter; rendered server-side via next-mdx-remote/rsc.
  • Ships five launch posts (~1500–2500 words each) covering origin story, storage internals, vector search with HNSW, benchmarks vs SQLite, and the multi-surface distribution story.
  • SEO: Blog JSON-LD on the index, BlogPosting + BreadcrumbList JSON-LD per post, canonical URLs, sitemap enumerates posts and tags, RSS feed advertised.
  • Defensive hardening from internal review: slug whitelist in getPostBySlug (path traversal), react/cache on the loaders, RSS URL fields routed through the XML escaper, alt text on OG images, UTC-pinned date formatting.

Routes

Route Type
/blog static
/blog/[slug] SSG (5 posts)
/blog/[slug]/opengraph-image SSG
/blog/[slug]/twitter-image SSG
/blog/tags/[tag] SSG (19 tags)
/blog/rss.xml static

Posts published

  1. Why I'm building SQLRite — an embedded SQL and vector database in Rust
  2. How SQLRite stores rows on disk: pages, B-trees, and a diff-based pager
  3. Adding vector search to a SQLite-style database with HNSW
  4. SQLRite vs SQLite, side by side: a benchmark and a fair-fight setup
  5. From SQL to Tauri: shipping SQLRite as a desktop app, MCP server, and Python/Node/Go SDKs

Each post: ≥3 internal links, primary keyword in title + slug + frontmatter, end-of-post CTA (GitHub star / install / docs).

Adding a post

Drop a new .mdx file in web/content/blog/ with the required frontmatter (title, description, publishedAt, author, tags). It is automatically picked up by the index, the slug route, the relevant tag pages, the RSS feed, the sitemap, and the dynamic OG image. README documents the workflow.

Test plan

  • npm run build — 43 static pages generated, no warnings introduced
  • npm run lint — clean
  • npx tsc --noEmit — clean
  • Generated rss.xml validates as XML and lists all 5 posts newest-first
  • All five /blog/<slug> URLs prerender as SSG
  • Per-post OG and Twitter images prerender
  • 19 unique tags produce 19 /blog/tags/<tag> pages
  • Spot-check /blog, a post page, and a tag page on the Vercel preview
  • Run Google's Rich Results Test against a preview post URL
  • Validate the preview RSS feed in an RSS reader (Reeder, NetNewsWire, etc.)
  • Confirm OG image renders correctly via the LinkedIn Post Inspector and Twitter Card Validator

🤖 Generated with Claude Code

Stand up an MDX-driven blog on the marketing site:

- /blog index, /blog/[slug] detail, /blog/tags/[tag], /blog/rss.xml
- Posts in web/content/blog/*.mdx with gray-matter frontmatter
- next-mdx-remote/rsc renders MDX server-side
- BlogPosting + BreadcrumbList JSON-LD per post; Blog JSON-LD on index
- Per-post dynamic OG / Twitter images via next/og
- Sitemap enumerates posts and tags; nav/footer link to /blog
- Five launch posts covering origin story, storage internals, vector
  search with HNSW, benchmarks vs SQLite, and the multi-surface
  distribution story

Hardening: slug whitelist in getPostBySlug to prevent path-traversal
probing, react cache() on the loaders, force-static RSS, RSS URL
fields routed through the XML escaper, alt text on OG images,
UTC-pinned date formatting.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 10, 2026

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

Project Deployment Actions Updated (UTC)
rust-sqlite Ready Ready Preview, Comment May 10, 2026 7:38am

Request Review

@joaoh82 joaoh82 merged commit 2d15aef into main May 10, 2026
17 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.

1 participant