aboutsummaryrefslogtreecommitdiff
path: root/website/src/pages/blog/index.astro
diff options
context:
space:
mode:
authorOgulcan Celik <ogulcancelik@gmail.com>2026-08-03 21:33:33 +0300
committerOgulcan Celik <ogulcancelik@gmail.com>2026-08-03 21:39:25 +0300
commit22bb476d646ccadec71f584b90c2a135fec92929 (patch)
treec6d4b6dffe0b8891c52e7e0cc10c8e6051734c30 /website/src/pages/blog/index.astro
parenteacea2daf0b72973173b728936b27478374f2cd2 (diff)
feat(website): rebuild marketing pages on new brand chassis
Diffstat (limited to 'website/src/pages/blog/index.astro')
-rw-r--r--website/src/pages/blog/index.astro56
1 files changed, 30 insertions, 26 deletions
diff --git a/website/src/pages/blog/index.astro b/website/src/pages/blog/index.astro
index 8ca2ca10..de9349ea 100644
--- a/website/src/pages/blog/index.astro
+++ b/website/src/pages/blog/index.astro
@@ -1,38 +1,42 @@
---
import { getCollection } from 'astro:content';
-import MarketingLayout from '../../components/MarketingLayout.astro';
+import SiteLayout from '../../components/SiteLayout.astro';
+/* Drafts render locally and never in a build, so an unpublished post can be
+ reviewed on the dev server without being one deploy away from going live. */
const posts = (await getCollection('blog'))
- .filter((post) => !post.data.draft)
+ .filter((post) => import.meta.env.DEV || !post.data.draft)
.map((post) => ({ ...post, slug: post.id.replace(/\.(md|mdx)$/i, '') }))
.sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf());
+
+const stamp = (date) =>
+ date.toLocaleDateString('en', { year: 'numeric', month: 'short', day: 'numeric' });
---
-<MarketingLayout
+<SiteLayout
title="Herdr blog"
- description="Notes on terminal-native agent workflows and the engineering behind Herdr."
+ description="Notes on the agent runtime — product decisions, implementation writeups, and what we learned running agents on machines nobody is watching."
canonicalPath="/blog/"
>
- <main class="content-shell">
- <section class="page-hero page-hero-compact">
- <p class="eyebrow"><span class="status-dot dot-working"></span>Blog</p>
- <h1>Notes from Herdr.</h1>
- <p class="hero-lede">
- Product notes and implementation writeups for the terminal-native agent multiplexer.
- </p>
- </section>
+ <header class="ph">
+ <div class="hd-eyebrow"><s></s>the blog</div>
+ <h1>Notes from the herd.</h1>
+ <p>
+ Product decisions, implementation writeups, and what we learn running agents on
+ machines nobody is watching.
+ </p>
+ </header>
- <section class="section section-narrow" aria-label="Blog posts">
- <div class="post-list">
- {posts.map((post) => (
- <article class="post-card">
- <a class="post-card-link" href={`/blog/${post.slug}/`}>
- <h2>{post.data.title}</h2>
- <span aria-hidden="true">→</span>
- </a>
- </article>
- ))}
- </div>
- </section>
- </main>
-</MarketingLayout>
+ <div class="posts">
+ {posts.map((post) => (
+ <a href={`/blog/${post.slug}/`}>
+ <time datetime={post.data.date.toISOString()}>{stamp(post.data.date)}</time>
+ <div>
+ <h2>{post.data.title}</h2>
+ {post.data.description && <p>{post.data.description}</p>}
+ </div>
+ <span class="go-arrow" aria-hidden="true">→</span>
+ </a>
+ ))}
+ </div>
+</SiteLayout>