revert Left-align page content and expand nav width
Change layout alignment from center to flex-start on various pages to
left-align content. Also increase .nav-inner max-width to 900px and set
margin to 0 so navigation aligns with page content.
Change layout alignment from center to flex-start on various pages to
left-align content. Also increase .nav-inner max-width to 900px and set
margin to 0 so navigation aligns with page content.
Introduce server-rendered guestbook and moderation portal.
Persist data in SQLite (better-sqlite3); add WebAuthn YubiKey
admin auth, rate-limiting, spam heuristics, and sanitization.
Switch Docker image to run Node/standalone Astro (remove nginx),
update docker-compose, Dockerfile, astro.config, and package.json.
Add .env.example, docs/guestbook.md, gitignore updates, layouts,
API routes, and supporting lib/components/pages for the feature.
Introduce a Library page and wire it into the main nav.
Add blog frontmatter fields: category, featuredEssay (default false),
and readingOrder (positive integer). Update several posts to mark
featured essays and assign readingOrder for the recommended path.
Introduce a new /start route (src/pages/start.astro) as an orientation
for
new visitors — includes recommended posts, highlighted projects, and
page
styles. Add the /start entry to src/components/Nav.astro.
Harden nginx: add CSP, HSTS, Referrer-Policy and Permissions-Policy;
include image/svg+xml in gzip types; set X-Content-Type-Options on
static assets; change try_files to return =404.
Add Nav component and wire into BaseLayout; add About and Projects
pages with projects.json, an initial blog post, and small layout/padding
adjustments (removed redundant back links).