aboutsummaryrefslogtreecommitdiff
path: root/website/src/pages/blog/index.astro
blob: 8ca2ca10278eee4ccf6624b701d8b4e1aa5c319f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
---
import { getCollection } from 'astro:content';
import MarketingLayout from '../../components/MarketingLayout.astro';

const posts = (await getCollection('blog'))
  .filter((post) => !post.data.draft)
  .map((post) => ({ ...post, slug: post.id.replace(/\.(md|mdx)$/i, '') }))
  .sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf());
---

<MarketingLayout
  title="Herdr blog"
  description="Notes on terminal-native agent workflows and the engineering behind Herdr."
  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>

    <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>