20 lines
1.2 KiB
Markdown
20 lines
1.2 KiB
Markdown
---
|
|
title: This website
|
|
summary: My own site built with Node.js and Express, maintained through a small admin interface, shipped as a Docker container.
|
|
---
|
|
|
|
I wanted a site I fully understand and can maintain without an off-the-shelf CMS, so it's deliberately simple.
|
|
|
|
## How it's built
|
|
|
|
- **Server:** Node.js with Express, pages are rendered on the server with Nunjucks.
|
|
- **Content:** Every project is a folder with a YAML file for metadata and one Markdown file per language. They're edited through admin pages that are only reachable from my home network. Changes go live right away, without a restart.
|
|
- **Images:** sharp resizes them on first request and keeps the results in a cache.
|
|
- **Hosting:** A Docker container managed in Dockge, with Nginx Proxy Manager in front for HTTPS. The container runs with a read-only filesystem and no extra privileges.
|
|
|
|
## What I paid attention to
|
|
|
|
The site sets no cookies and doesn't load anything from third-party servers, fonts included. Everything still works without JavaScript, the animations are an extra and respect the system setting for reduced motion.
|
|
|
|
The background on the homepage is a small WebGL shader that lets the stripes of the genderfluid flag flow into each other.
|