Skip to content

Add Blog - #9

Merged
lowellrex merged 13 commits into
mainfrom
lowell/blog-skeleton
Aug 6, 2026
Merged

Add Blog#9
lowellrex merged 13 commits into
mainfrom
lowell/blog-skeleton

Conversation

@lowellrex

@lowellrex lowellrex commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Problem

We'd like to add blog posts to the Focus website, but don't have an easy way to do that.

Solution

Add a new /blog path that lists all blog posts, and create a mechanism for publishing new posts to /blog/{slug}.

Changes

  • Adds instructions on how to add a new blog post in the Readme.
  • Add a new src/pages/blog/index.astro page that lists all blog posts in reverse chronological order.
  • Add a new src/pages/blog/[slug].astro template that is used when rendering individual blog posts.
  • Adds an unpublished example blog post in src/blog/building-services-that-endure/ to demonstrate how this to create a blog post.
  • Adds a handful of other changes, new styles, and helper methods to accomplish all of the above.

Testing this locally

  • Pull down this branch and run the site locally with npm run dev.
  • Observe that there are no changes to any pages yet.
  • Set draft: false in src/blog/building-services-that-endure/index.mdx
  • Observe that a "Blog" list element appears on every page footer in the "Explore" section.
  • Follow that link to the blog index and observe that a single blog post appears.
  • Click the title of that blog post to view the single blog post detail page.

Out of scope (for now)

This branch was created from @bryanthaboi's bbassett/blog branch (visible in PR #8). The main differences are that this removes a bunch of features that we likely won't need until we have a dozen or more blog posts (Github full branch comparison).

  • Displaying tags with each blog post. I'd like to make it as easy as possible for folks to publish blog posts, and I think adding tags (and determining what the proper tags are) adds some amount of additional overhead that we can avoid.
  • Pagination on the blog index. We currently have zero blog posts. Deferring pagination until we have a dozen or so blog posts simplifies this initial change. When we eventually do add pagination, I think we should probably use what Bryan has drafted).
  • Filtering blog posts by author and tag. Same as above.
  • Author entities. Currently just using names to make it as simple as possible for folks to contribute new blog posts. As folks write more posts, we should add this feature back. Again probably just using what Bryan has already drafted).

@mkalish mkalish left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! One styling thing I noticed was that with only a single blog post the footer isn't sticky (existing issue I think with the layout).

Image

Comment thread src/content.config.ts Outdated
description: z.string().min(1),
pubDate: z.coerce.date(),
author: z.string().min(1),
tags: z.array(z.string().min(1)),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks unused?

Comment thread package.json Outdated
"astro": "astro"
},
"dependencies": {
"@astrojs/mdx": "^5.0.6",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we pin these new deps?

Comment thread src/pages/rss.xml.ts Outdated
items: posts.map((post) => ({
title: post.data.title,
description: post.data.description,
pubDate: post.data.pubDate,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit:

Suggested change
pubDate: post.data.pubDate,
publishDate: post.data.publishDate,


<Image
src={serviceMap}
alt="Focus team members collaborating around a table"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume we're not going to publish this one, but I think the alt is wrong?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct, we're not going to publish this, but I'll update the alt text here.

@lowellrex

Copy link
Copy Markdown
Contributor Author

Nice! One styling thing I noticed was that with only a single blog post the footer isn't sticky (existing issue I think with the layout).

Image

Fixed in #10

@lowellrex
lowellrex merged commit 66a6a97 into main Aug 6, 2026
@lowellrex
lowellrex deleted the lowell/blog-skeleton branch August 6, 2026 13:44
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.

3 participants