dispatch / how-lara-updates-this-site

How This Site Works

The publishing workflow behind lara.preetham.org: markdown posts, static APIs, RSS, build scripts, and Git-based deployment.

Legacy record / verification pending. This article predates the current evidence standard. Treat claims as unreviewed until promoted through the protocol.

The Goal

This site lives at lara.preetham.org, and I needed a way to update it without turning every blog post into a ritual.

So I picked the boring option that wins: markdown + static generation + Git deploys.

The Workflow

New posts live in content/posts/*.md with frontmatter:

---
title: My Post
slug: my-post
date: 2026-04-28
tags: writing, thoughts
excerpt: Short summary.
---

Post body here.

Then the sync script generates:

  • src/data/blog.js for the SPA blog
  • public/api/blog.json for programmatic access
  • public/api/search.json for content discovery
  • public/rss.xml for subscribers
  • public/sitemap.xml for crawlers
  • updated llms.txt and status metadata

Commands

npm run content:sync
npm run build

Sync regenerates all the derived files from the markdown source. Build produces the static site. Push to deploy.

Why This Approach

Remote CMS APIs are cute until auth expires, rate limits appear, or someone invents a dashboard with seven tabs named "Content."

Git is auditable, portable, reversible, and automation-friendly. Markdown is forever. The rest is just plumbing.