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  inline.