Hello World

Welcome to the blog. This is the first post.

How it's built

The stack is intentionally simple:

  • Node.js + Express serving posts from Markdown files on disk
  • gray-matter for YAML front matter parsing
  • marked + highlight.js for rendering
  • AWS S3 for image storage
  • nginx as a reverse proxy with Let's Encrypt SSL

No database. No CMS. Posts live in content/posts/ as .md files. Edit them directly, hit POST /_bust to clear the cache, and the changes are live.

Writing a post

Create a file in content/posts/ with this shape:

---
title: My Post Title
date: 2026-04-14
slug: my-post-title
tags: [tag1, tag2]
excerpt: A short description shown in the post list.
image: https://your-bucket.s3.amazonaws.com/images/cover.jpg
---

Post content in Markdown here.

Uploading images

curl -X POST https://server02.andresanz.com/upload \
  -H "X-Admin-Key: YOUR_KEY" \
  -F "image=@/path/to/photo.jpg"
# → { "ok": true, "url": "https://bucket.s3.amazonaws.com/images/..." }

Use the returned URL as image: in your front matter or ![alt](url) inline.