Skip to content

Commit 7208f3a

Browse files
Kasper Jungeclaude
authored andcommitted
feat: add blog to website using MkDocs Material blog plugin
Enables the built-in Material blog plugin at /docs/blog/ for SEO content about ralph loops, autonomous agents, and harness engineering. Includes BlogPosting JSON-LD structured data, article og:type for posts, author profiles, and a seed welcome post. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 3c0efb0 commit 7208f3a

7 files changed

Lines changed: 87 additions & 1 deletion

File tree

docs/blog/.authors.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
authors:
2+
kasper:
3+
name: Kasper Junge
4+
description: Creator of Ralphify
5+
avatar: https://github.com/kasperjunge.png

docs/blog/index.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
title: Blog
3+
description: Articles about ralph loops, autonomous AI agents, and harness engineering.
4+
---
5+
6+
# Blog

docs/blog/posts/welcome.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
---
2+
date: 2026-03-24
3+
categories:
4+
- Announcements
5+
authors:
6+
- kasper
7+
description: Introducing the Ralphify blog — where we'll share insights on ralph loops, autonomous agents, and harness engineering.
8+
---
9+
10+
# Welcome to the Ralphify Blog
11+
12+
This is the official Ralphify blog. We'll be writing about ralph loops, autonomous long-running agents, harness engineering, and everything we learn building tools for agentic workflows.
13+
14+
<!-- more -->
15+
16+
## What to expect
17+
18+
We started Ralphify because we believe autonomous AI coding loops are the future of software development. Not as a replacement for human judgment, but as a way to keep the work moving when you're not at the keyboard.
19+
20+
Here's what we'll be covering:
21+
22+
- **Ralph loops in practice** — real-world patterns, prompt engineering for loops, and lessons from running agents autonomously.
23+
- **Harness engineering** — the emerging discipline of designing systems that keep AI agents productive, safe, and on-track over long runs.
24+
- **Announcements** — new releases, features, and what's coming next for Ralphify.
25+
- **Opinions** — our take on where autonomous agents are headed and what developers should be thinking about.
26+
27+
Stay tuned.

docs/overrides/main.html

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,12 @@
3232
{% endif %}
3333

3434
<!-- Open Graph -->
35+
{% if page and page.meta and page.meta.date %}
36+
<meta property="og:type" content="article">
37+
<meta property="article:published_time" content="{{ page.meta.date }}">
38+
{% else %}
3539
<meta property="og:type" content="website">
40+
{% endif %}
3641
<meta property="og:title" content="{{ page_title }}">
3742
<meta property="og:description" content="{{ page_desc }}">
3843
<meta property="og:url" content="{{ page_url }}">
@@ -126,8 +131,32 @@
126131
</script>
127132
{% endif %}
128133

134+
<!-- BlogPosting structured data for blog posts -->
135+
{% if page and page.meta and page.meta.date and not page.is_homepage %}
136+
<script type="application/ld+json">
137+
{
138+
"@context": "https://schema.org",
139+
"@type": "BlogPosting",
140+
"headline": "{{ page.title }}",
141+
"description": "{{ page_desc }}",
142+
"url": "{{ page_url }}",
143+
"datePublished": "{{ page.meta.date }}",
144+
{% if page.meta.git_revision_date_localized_raw_iso_date %}
145+
"dateModified": "{{ page.meta.git_revision_date_localized_raw_iso_date }}",
146+
{% endif %}
147+
"author": {
148+
"@type": "Organization",
149+
"name": "Computerlove Technologies",
150+
"url": "https://github.com/computerlovetech"
151+
},
152+
"publisher": {
153+
"@type": "Organization",
154+
"name": "Computerlove Technologies"
155+
}
156+
}
157+
</script>
129158
<!-- TechArticle structured data for docs pages -->
130-
{% if page and page.title and not page.is_homepage %}
159+
{% elif page and page.title and not page.is_homepage %}
131160
<script type="application/ld+json">
132161
{
133162
"@context": "https://schema.org",

mkdocs.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,17 @@ plugins:
7373
- search:
7474
separator: '[\s\-\.]+'
7575
lang: en
76+
- blog:
77+
blog_dir: blog
78+
blog_toc: true
79+
post_date_format: long
80+
post_url_format: "{slug}"
81+
post_readtime: true
82+
post_excerpt: required
83+
categories: true
84+
archive: true
85+
authors: true
86+
pagination_per_page: 10
7687
- git-revision-date-localized:
7788
enable_creation_date: true
7889
type: timeago
@@ -101,6 +112,7 @@ nav:
101112
- Quick Reference: quick-reference.md
102113
- CLI: cli.md
103114
- Python API: api.md
115+
- Blog: blog/index.md
104116
- Help:
105117
- Troubleshooting: troubleshooting.md
106118
- Changelog: changelog.md

website/index.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@
190190
<div class="nav-links">
191191
<a href="docs/">Docs</a>
192192
<a href="docs/cookbook/">Cookbook</a>
193+
<a href="docs/blog/">Blog</a>
193194
<a href="https://github.com/computerlovetech/ralphify" target="_blank" rel="noopener noreferrer">GitHub</a>
194195
<a href="docs/getting-started/" class="nav-cta">Get Started</a>
195196
</div>
@@ -615,6 +616,7 @@ <h3>Documentation</h3>
615616
<li><a href="docs/getting-started/">Getting Started</a></li>
616617
<li><a href="docs/cookbook/">Cookbook</a></li>
617618
<li><a href="docs/">Full Docs</a></li>
619+
<li><a href="docs/blog/">Blog</a></li>
618620
</ul>
619621
</div>
620622
<div class="footer-col">

website/sitemap.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@
5656
<changefreq>monthly</changefreq>
5757
<priority>0.7</priority>
5858
</url>
59+
<url>
60+
<loc>https://ralphify.co/docs/blog/</loc>
61+
<changefreq>weekly</changefreq>
62+
<priority>0.8</priority>
63+
</url>
5964
<url>
6065
<loc>https://ralphify.co/docs/troubleshooting/</loc>
6166
<changefreq>monthly</changefreq>

0 commit comments

Comments
 (0)