Skip to content

Add blog: index, posts, and RSS feed - #21

Open
tdi wants to merge 14 commits into
mainfrom
feature/blog
Open

Add blog: index, posts, and RSS feed#21
tdi wants to merge 14 commits into
mainfrom
feature/blog

Conversation

@tdi

@tdi tdi commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Re-activates and rebuilds the blog on top of the disabled Astroship scaffolding, restyled to match the current marketing site. v1 is intentionally lean: text cards + RSS, with covers and taxonomy deferred.

What's included

  • /blog index — published posts newest-first as text cards (title, snippet, author • date), styled with the site's Container/Sectionhead and slate/purple tokens; graceful empty state.
  • /blog/<slug> posts — MDX rendered through a restyled BlogLayout (prose, Bricolage heading, back-to-blog link). Prerendered under output: "server".
  • /rss.xml — feed via @astrojs/rss (new dependency), with a discovery <link> in the site head.
  • Seed post — "When Your SOTA Provider Goes Down: Failover Routing in the Bitropy LLM Router".
  • Shared getPublishedPosts() helper — single source of truth for the !draft && publishDate <= now filter + sort, consumed by the index, post getStaticPaths, and RSS.
  • Layout gains an optional ogType prop → posts emit og:type=article; all other pages unchanged (website + default OG image).
  • Schema: image/category/tags made optional (kept for future use, not rendered in v1).
  • Wiring: Blog added to navbar + footer; /blog/ un-excluded from the sitemap.

Deferred (not in this PR)

Cover images, category/tag filter pages, pagination, author bio pages, related posts, reading time.

Verification

  • pnpm build passes; blog pages prerender to dist/client/, RSS + sitemap include the post.
  • Local dev checks: /blog, /blog/llm-router-failover, /rss.xml all 200; og:type=article on the post; nav + footer link to /blog.
  • Design spec and implementation plan committed under docs/superpowers/.

Note: the repo's CLAUDE.md is stale (describes a Next.js app and a pnpm lint script that doesn't exist); this is actually an Astro site. Worth a follow-up cleanup.

🤖 Generated with Claude Code

tdi added 14 commits July 20, 2026 11:29
Reactivating the disabled Astroship blog scaffolding, rebuilt to match the
redesigned marketing site. Captures the v1 scope (text cards + RSS, covers
and taxonomy deferred) before implementation.
Task-by-task plan to rebuild the blog: schema, seed post, layout/SEO,
post + index pages, RSS feed, and nav/footer/sitemap wiring.
Removes verbatim triplication of the publish filter+sort across the index,
post pages, and RSS feed.
Covers and category/tag display are deferred out of blog v1, so authors are not
forced to populate those fields. getPublishedPosts() centralizes the publish
filter and sort shared by the index, post pages, and RSS feed.
Gives the blog real end-to-end content: same-model failover routing when a
primary SOTA provider degrades.
Lets blog posts declare og:type=article and exposes the feed to readers, with
non-blog pages unchanged (default website type).
Drops the template's blue category header and cover markup for the site's
Container, prose typography, and slate/purple tokens; passes ogType=article.
Replaces the redirect stub with real content-layer rendering (render(entry),
entry.id), prerendered and filtered to published posts.
Lists published posts newest-first as text cards in the site style; removes the
unused paginated route (no pagination in v1).
Publishes non-draft, non-future posts newest-first via @astrojs/rss.
Surfaces /blog in the header and footer navigation and stops excluding blog
URLs from the generated sitemap.
Future-proofs the post route with a rest param, normalizes the post URL
trailing slash on the index, drops a redundant Date wrap, and marks the
decorative byline bullet aria-hidden.
@vercel

vercel Bot commented Jul 20, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
bitropy-website Ready Ready Preview, Comment Jul 20, 2026 10:41am

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