How It Works

Each blog post is a real HTML page. The post template includes data-next-url and data-next-title attributes that SSI fills in at build time using its navigation source.

The navigation source knows which page comes next (in reverse chronological order), so each post page knows where to go next — without any server, without any database, without any CMS.

The SSI Config

[[step]]
emoji = "🧭"
path = "posts/"
processing = "include"
type = "navigation"
destination = "posts/"
options = ["inline", "timestamp", "reverse"]

The Template

<article class="post"
                         data-next-url="🧭next"
                         data-next-title="🧭next_title">
                    ...post content...
                    <nav class="post-nav">
                        <a href="🧭prev">🧭previous_title</a>
                        <a href="🧭next">🧭next_title</a>
                        <p>Post 🧭index of 🧭total</p>
                    </nav>
                </article>

Scroll down to start reading the ten demo posts.