Production Starter

Static by default, dynamic when needed

Static by default is a production strategy: ship HTML first, reduce runtime complexity, and add dynamic behavior only where it creates real value.

Static is a reliability choice

Static output removes entire classes of production problems: runtime failures, unpredictable rendering paths, and dependency drift in production environments.

When a site can be served as plain HTML, it becomes easier to deploy, cache, and operate.

Dynamic behavior should be explicit

Dynamic behavior is not bad. Hidden dynamic behavior is. Production-ready websites add interactivity intentionally and locally: a modal, a tab switcher, a filtered list.

The goal is to keep behavior small, scoped, and replaceable.

Progressive enhancement keeps the foundation clean

Progressive enhancement means the page works without JavaScript and becomes nicer with it. This is a safer default than requiring a runtime for basic navigation or content display.

It also keeps performance predictable: you can add polish without turning the whole site into an app.

Where dynamic makes sense

“Dynamic when needed” is about choosing runtime behavior based on user value, not developer convenience.

  • Search and filtering when content sets grow
  • Preview flows and safe content operations
  • Small interactive components (dialogs, tabs, menus)
  • Optional HTMX fragments for live-updating sections

The outcome

Static by default reduces maintenance load and keeps teams productive. You ship faster, your website stays fast, and future changes feel smaller.

This is not anti-dynamic. It is pro-control.