Changelog

October 8, 2026

Register Journal Article DOIs under your journal

Sites marked as a Journal can now register Journal Article DOIs inside their own journal at Crossref. Registered DOIs resolve at doi.curvenote.com on their own, and safeguards keep a live DOI from being taken offline. The submissions list now opens on the work in play, and the CLI uses the Curvenote theme by default.

Curvenote SCMS

A live DOI keeps its submission online. When a submission has a DOI that’s registered or being registered, unpublishing and retracting it are refused everywhere: on the site, through the API, through the jobs endpoint, from the CLI, and for jobs that were already queued. The refusal names the DOI, so it’s clear which record is affected. A DOI that’s still being registered appears only to members who can see DOIs. Other members still see the timeline events, without the DOI or failure details.

The submissions list gets a multi-select status filter. It opens on Pending + Published, offers Active and Inactive presets in the dropdown, and adds a Retracted option. Extensions can use the same control through the shared component library. SCMS also ships with a default product-analytics setup, which pauses session recording on system-admin pages and never shows API tokens in replays.

The All Submissions list opens on the Active preset — Pending plus Published — with a multi-select status filter that adds Approved, Unpublished, Retracted, and Rejected.

The All Submissions list opens on the Active preset — Pending plus Published — with a multi-select status filter that adds Approved, Unpublished, Retracted, and Rejected.

Curvenote Sites

Journal Article DOIs, inside your journal. On Site → DOI Registration, a new Site type card lets a Site Admin mark the Site as a Journal and set up the journal its articles are registered under. If Crossref already has the journal, setup picks it up from Crossref. Otherwise, enter it as a new journal, and Crossref creates it with the first article. Submission Kinds can then deposit as Journal Articles inside that journal, with its ISSNs. After the first article reaches Crossref, the journal locks, and edits pause while a registration is in flight, so the journal record and its articles stay in step. If something blocks registration, such as a missing journal, a missing ISSN, or a Site without a domain, the notice says exactly what’s missing and where to fix it. ISSNs are compared in normalized form, and a mismatch points at the field that differs.

Registered DOIs resolve on their own. When Crossref confirms a DOI, it’s added to doi.curvenote.com automatically, with retries until the service accepts it. Platform admins get a Test connection button for the DOI service. It shows the result inline and says in one sentence which setting blocks registration, if any.

Live DOIs protect the Site. A Site with live DOIs can’t be made private, and a private Site doesn’t offer DOI registration. On a submission with a live DOI, Unpublish and Retract are greyed out, with the reason shown on hover. Clicking either opens a help dialog that names the DOI and offers a way to contact Curvenote support. DOI setup copy is clearer too:

  • A rejected prefix’s error stays under the prefix field until the next save.

  • Site names and Crossref prefix owners are set apart instead of being built into sentences.

  • Rejected submissions explain DOI eligibility instead of asking the admin to publish.

Curvenote CLI

curvenote@0.17.6 slims the install: the blog and person extensions now share the CLI’s common library instead of pulling in older copies and an extra copy of React.

Predictable site templates are merged and arrive in the next minor release. The CLI follows a site.template only when it’s a local template folder or a github.com zip. Anything else falls back to the latest Curvenote theme, with a warning that names the ignored value. Use curvenote or curvenote@<ref> (a tag, branch, or commit) to pin the theme. A GitHub repository link resolves to its main zip, or to the ref you add with @<ref>. curvenote init, clone, and pull write curvenote@latest, init --github replaces a missing or rejected template, and --template on start follows the same rules.

curvenote start opens a local development surface that confirms the content server is up, takes an optional site ID to preview with your site’s branding, and lets you open the project as a landing site or an article view.

curvenote start opens a local development surface that confirms the content server is up, takes an optional site ID to preview with your site’s branding, and lets you open the project as a landing site or an article view.

Build and request logs, right in the theme. You can now watch logs from inside the local preview itself — the theme carries a built-in log viewer so you no longer have to switch back to the terminal to see what the content server is doing.

A built-in log viewer overlays the local preview, streaming build and request logs live with Debug, Info, Warn, and Error filters and a search box so you can watch a project rebuild as you edit.

A built-in log viewer overlays the local preview, streaming build and request logs live with Debug, Info, Warn, and Error filters and a search box so you can watch a project rebuild as you edit.