Give agents a system, not a blank canvas
Why bounded choices, generated contracts, and actionable validation make agents more useful website collaborators.
2026-08-27 · 5 minute read
Static output is not nostalgia. It is a deliberate reduction in runtime surface, deployment coupling, and hidden failure modes.
Choosing static output by default shapes far more than rendering. It changes what can fail, what must be secured, what costs recur, and how long the result can remain useful.
Static-first means an ordinary content page should build into HTML, CSS, and local assets unless a visible requirement needs something more. It does not mean a website can never contain JavaScript or a server function.
The distinction matters because defaults spread. If every page begins as a client application, the runtime, loading, caching, security, and failure assumptions of an application become the baseline—even when the page only needs to explain a service or publish an article.
Sights starts with the smaller operational surface.
A prerendered document does not need a database connection to display its heading. It does not wait for a runtime content API to expose the primary copy. It does not require a framework bundle to make a link work.
That reduces several forms of ongoing work:
Static output is therefore an operational design choice, not merely a rendering preference.
Static does not excuse an incomplete website. A production build needs canonical metadata, social cards, structured data, a sitemap, robots instructions, a useful 404, redirect artifacts, local dimensioned media, and a clear URL policy.
Sights derives those outputs from the same validated route graph used to render the page. The system does not maintain a separate list of URLs and hope it stays current.
This product site has two useful examples.
Its dropdown navigation declares one shared shell runtime for pointer and keyboard behavior. Its mortgage calculator declares one site-owned module that loads only on the calculator route. The calculator remains server-rendered and useful before the module starts.
Those are bounded capabilities. They do not turn every page into an application.
The same principle should govern future server work. A production form requires a trusted named action, input validation, origin protection, abuse controls, safe logging, secret configuration, and a host that supports the capability. One form should not force unrelated pages to render on demand.
HTML, CSS, images, metadata, and discovery files are portable. HTTP redirects are not ordinary static files; a host must enforce them. Sights therefore emits a normalized redirect manifest and requires a deployment adapter that can produce the correct host artifact.
Static-first works best when it is precise about where portability ends. The goal is not to call everything static. The goal is to keep every non-static requirement explicit.
Keep reading
Why bounded choices, generated contracts, and actionable validation make agents more useful website collaborators.