Most visual editors for static sites ask for the same trade. Content moves into a CMS, layout moves into an editor-specific format, and your .astro files become a rendering target instead of the thing you edit.

I built @sudodevstudio/astro-ai to avoid that trade. It is a development-only Astro integration. You select an element on the rendered page, and the edit is written to the source file that produced it.

Why source ownership was the point

A separate authoring system is a reasonable choice for some projects. Editorial workflows and non-technical authors need an architecture built for them.

For a site already maintained through code, a second representation adds a standing question: does a manual edit survive the next visual one, and which representation wins when they disagree? I wanted visual edits and manual edits to operate on the same source files, with no separate representation to reconcile. A visual edit is an ordinary source change. It shows up in the same diff and the same pull request as an edit you typed.