@vinumcms/server
v0.21.0
Published
Server-only data layer over a Store adapter: pages, drafts, revisions, types, forms, media, users, auth, redirects, backup.
Readme
@vinumcms/server
The data layer and defineVinum(). Server-only — it reaches for node:buffer,
Web Crypto and cookie signing, so importing it from a client component pulls all
of that into the browser bundle. Host code imports it from loaders and actions.
const vinum = defineVinum({
site: { name: "My Site" },
store: denoKvStore({ path: "./data/kv.sqlite" }),
media: fsMedia({ dir: "./data/media" }),
auth: { cookieName: "site_admin", secret: env("SESSION_SECRET") },
});
await vinum.pages.saveDraft(page);
await vinum.pages.publish("about"); // snapshots the outgoing version firstAPIs: pages (published records, drafts, revisions, entries) · types ·
forms · assets · users · auth · redirects · settings · backup.
No global state — a test can build several instances in one process. Seeding is lazy and memoised, so it runs on first content access rather than at import.
The key layout it writes is a public contract: ["page", slug],
["draft", slug], ["rev", slug, ts], and so on. Existing databases keep
working untouched.
Setup and theming live in @vinumcms/admin, which carries the
getting-started guide for all of Vinum.
