standard.site frontend

README.md

vibecode.rodeo #

ATProto-powered publishing system for vibecode.rodeo.

This project contains:

  • A Dart CLI (vibecode) for publishing Markdown files as site.standard.document records.
  • A Dart server that dynamically renders those records as HTML.
  • Client-side Bluesky comments for posts that reference a Bluesky thread.

Architecture #

The source of truth for content is ATProto records:

  • site.standard.publication describes the site.
  • site.standard.document describes each post/page.
  • Document content is stored as at.markpub.markdown.
  • The server reads records from the PDS and renders HTML on demand.
  • Verification uses /.well-known/site.standard.publication and <link rel="site.standard.document"> tags.

Local development #

# Install dependencies
dart pub get

# Configure the site
cp config/site.example.yaml config/site.yaml
# Edit config/site.yaml with your handle, service, and URL.

# Create the publication record on your PDS
ATPROTO_APP_PASSWORD=xxxx-xxxx-xxxx-xxxx dart run bin/vibecode.dart init

# Publish a post
ATPROTO_APP_PASSWORD=xxxx-xxxx-xxxx-xxxx dart run bin/vibecode.dart publish content/essays/hello-world.md

# Run the server
PORT=8080 dart run bin/server.dart

CLI commands #

Command Description
vibecode init Create the site.standard.publication record
vibecode publish <file> Publish or update a Markdown file
vibecode unpublish <path> Delete a document record by path
vibecode list List published documents
vibecode sync Publish all Markdown files under content/

Markdown format #

Posts are Markdown files with YAML front matter:

---
title: Hello World
description: A short excerpt
path: /essays/hello-world/
publishedAt: 2026-06-13T12:00:00Z
tags: [meta, atproto]
bskyPostRef: at://did:plc:.../app.bsky.feed.post/...
---

# Hello World

Content here.

Deployment #

The code is hosted on Tangled at:

git@tangled.org:did:plc:udtezrjybbshf2se24lykure

The included deploy/install.sh sets up a DigitalOcean droplet with Dart, nginx, and systemd. It clones the code from Tangled.

# On the server, as root
./deploy/install.sh

# After code changes are pushed to Tangled
./deploy/deploy.sh

Environment variables #

Variable Description
ATPROTO_APP_PASSWORD ATProto app password for the CLI
PORT Port for the server (default: 8080)