Primo is an open-source visual CMS for developers who build websites for clients. Developers work in code: blocks are Svelte components whose fields are described in YAML. Clients edit content directly on the rendered page and add or reorder blocks by drag and drop. A site exists both as a database and as a folder of files, so AI coding agents can edit it too; the primo push and primo pull commands synchronise the site with the server. Primo supports multiple sites, custom page types and real-time collaboration. It is a single Go program with PocketBase (SQLite) and Svelte 5 that serves both the CMS and the published sites.
Primo is open source under the MIT licence and is offered as a self-hosted solution; the project has been in development since 2019. Because you install the server yourself, you decide where content and code are stored, for example with a European hosting provider. Content and code can be exported at any time, which limits dependence on the maker.