Blog Sections
A clean, image-free row layout for your homepage or blog index page — denser and faster to scan than a card grid
The gaps a content audit usually finds, and how to fix them.
A repeatable, automated content system that keeps a roofing site ranking locally.
The checklist multi-location businesses need to rank in every market they serve.
See how to use it on your page, then copy the component file itself.
| Prop | Type | Default | Description |
|---|---|---|---|
| tagline | string | "Latest updates" | Small label shown above the heading |
| heading | string | "From the blog" | Section heading |
| viewAllHref | string | "/blog" | Link for the "View all posts" link |
| accentColor | string | "#4A68E5" | Accent color for the tagline, tags, and links |
| posts | BlogPost[] | — | Array of articles to display, in order |
| posts[].slug | string | — | URL identifier - used to link to the full article |
| posts[].title | string | — | Article title |
| posts[].meta_description | string | null | null | Short description shown under the title |
| posts[].focus_keyword | string | null | null | Shown as a small tag, if set |
| posts[].created_at | string | — | Publish date, shown on the right |