No description
Find a file
Adrian Altner 9d22d93361 Add security headers and caching for webmention avatars
- Introduced a new post detailing the implementation of security headers for an Astro site behind Caddy, focusing on Content Security Policy, HSTS, and Referrer Policy.
- Added a new post on caching webmention avatars locally at build time to enhance privacy and comply with GDPR.
- Implemented a helper function to download and deduplicate webmention avatars, storing them in a cache directory.
- Created an Astro integration for garbage collection of orphaned avatar files after the build process.
2026-04-22 21:48:17 +02:00
.claude Initial commit: Astro 6 static blog site 2026-04-22 10:55:29 +02:00
.forgejo/workflows refactor: remove theme toggle functionality and related styles 2026-04-22 18:23:06 +02:00
.vscode Initial commit: Astro 6 static blog site 2026-04-22 10:55:29 +02:00
public Initial commit: Astro 6 static blog site 2026-04-22 10:55:29 +02:00
scripts Initial commit: Astro 6 static blog site 2026-04-22 10:55:29 +02:00
src Add security headers and caching for webmention avatars 2026-04-22 21:48:17 +02:00
.gitignore feat: implement avatar caching and refactor obfuscation decoding 2026-04-22 18:35:23 +02:00
astro.config.mjs Add security headers and caching for webmention avatars 2026-04-22 21:48:17 +02:00
CLAUDE.md Initial commit: Astro 6 static blog site 2026-04-22 10:55:29 +02:00
compose.yml fix: update port mapping for website service in Docker Compose 2026-04-22 18:12:55 +02:00
Containerfile fix: specify full image paths for Node.js and Nginx in Containerfile 2026-04-22 18:15:01 +02:00
package-lock.json Initial commit: Astro 6 static blog site 2026-04-22 10:55:29 +02:00
package.json Initial commit: Astro 6 static blog site 2026-04-22 10:55:29 +02:00
README.md Initial commit: Astro 6 static blog site 2026-04-22 10:55:29 +02:00
tsconfig.json Initial commit: Astro 6 static blog site 2026-04-22 10:55:29 +02:00

Astro Starter Kit: Blog

npm create astro@latest -- --template blog

🧑‍🚀 Seasoned astronaut? Delete this file. Have fun!

Features:

  • Minimal styling (make it your own!)
  • 100/100 Lighthouse performance
  • SEO-friendly with canonical URLs and Open Graph data
  • Sitemap support
  • RSS Feed support
  • Markdown & MDX support

🚀 Project Structure

Inside of your Astro project, you'll see the following folders and files:

├── public/
├── src/
│   ├── assets/
│   ├── components/
│   ├── content/
│   ├── layouts/
│   └── pages/
├── astro.config.mjs
├── README.md
├── package.json
└── tsconfig.json

Astro looks for .astro or .md files in the src/pages/ directory. Each page is exposed as a route based on its file name.

There's nothing special about src/components/, but that's where we like to put any Astro/React/Vue/Svelte/Preact components.

The src/content/ directory contains "collections" of related Markdown and MDX documents. Use getCollection() to retrieve posts from src/content/blog/, and type-check your frontmatter using an optional schema. See Astro's Content Collections docs to learn more.

Any static assets, like images, can be placed in the public/ directory.

🧞 Commands

All commands are run from the root of the project, from a terminal:

Command Action
npm install Installs dependencies
npm run dev Starts local dev server at localhost:4321
npm run build Build your production site to ./dist/
npm run preview Preview your build locally, before deploying
npm run astro ... Run CLI commands like astro add, astro check
npm run astro -- --help Get help using the Astro CLI

👀 Want to learn more?

Check out our documentation or jump into our Discord server.

Credit

This theme is based off of the lovely Bear Blog.