Well, here we are.
This is the first post on the new joe.dev — a fresh Hugo setup deploying via Cloudflare Pages, with posts mirrored to ATproto via Sequoia.
Nothing deep to say yet. Just kicking the tires and making sure the whole pipeline works end to end. More soon.
Code highlighting
Here’s some Go:
package main
import (
"context"
"fmt"
"log"
"github.com/stacklok/mcp-go/pkg/server"
)
func main() {
srv := server.New("example", "0.1.0")
srv.AddTool("greet", func(ctx context.Context, name string) (string, error) {
return fmt.Sprintf("Hello, %s!", name), nil
})
if err := srv.Run(context.Background()); err != nil {
log.Fatal(err)
}
}
And some Bash:
#!/usr/bin/env bash
set -euo pipefail
REPO="jbeda/joe-dev-blog"
# Trigger a manual deploy
gh workflow run deploy.yml --repo "$REPO"
# Watch the run
gh run watch --repo "$REPO" \
"$(gh run list --repo "$REPO" --limit 1 --json databaseId -q '.[0].databaseId')"
Diagram
And a Mermaid diagram:
graph LR
accTitle: How a post gets published
accDescr {
Left-to-right flowchart of the publishing pipeline. Writing a post and
running git push triggers GitHub Actions, which branches into two paths:
sequoia publish, which writes the post to ATproto / Bluesky; and hugo
build, which deploys to Cloudflare Pages, which serves joe.dev.
}
A[Write post] --> B[git push]
B --> C[GitHub Actions]
C --> D[sequoia publish]
C --> E[hugo build]
D --> F[ATproto / Bluesky]
E --> G[Cloudflare Pages]
G --> H[joe.dev]