Static-first publishing as a discipline

به‌روز شده:

همچنین قابل دسترسی در: English

Most personal sites do not need a runtime. They need files, checks, and a deploy step you can explain in one sentence.

Static-first publishing means the production artifact is HTML on disk. The server — if there is one — handles the exceptions: forms, webhooks, admin tools. Not page rendering. Not content queries. Not template compilation at request time.

What you gain

  • Speed by default. No hydration tax, no framework boot, no layout shift from client rendering.
  • Inspectable output. You can open dist/en/writing/my-post/index.html and see exactly what ships.
  • Cheap hosting. Any object store or CDN works. Scale is someone else's problem.
  • A real review surface. Content changes are diffs. Translation pairing is a build error, not a production surprise.

What you give up

  • Instant publish without a build. Acceptable. A two-minute CI run is cheaper than operating a CMS database.
  • Per-request personalization. Not missed on a personal site.
  • Plugin ecosystems. Replaced by typed code you own.

The discipline

Treat the build as part of the product. Translation validators, link checkers, and draft guards are not "nice to have" — they are how you keep a bilingual site honest without hiring an editor.

The contact form posts to /api/contact. Everything else is already HTML when the first byte leaves the CDN.